如何立即调用“Instantiate()”方法而不是“Object.Instantiate()”?

问题描述 投票:0回答:3

enter image description here 我发现

Instantiate()
是一个静态方法。 我们如何在不使用点 (.) 运算符的情况下调用
Instatiate()
而不是键入
Object.Instantiate()

例如,当我们调用

GetAxis()
Input 
类的静态方法时,我们键入
Input.GetAxis()
但是我们怎么能只键入
Instantiate() 
而没有点(.)运算符?

unity3d
3个回答
0
投票

所有 Unity MonoBehavior 脚本都可以在没有点运算符的情况下立即访问此方法。就这样称呼它:

void MethodName(){
    Instantiate(<arguments>);
}

0
投票

Instantiate Function 派生自MonoBehaviour。 如果你的类没有继承自 MonoBehaviour 你必须调用 Object.Instantiate Example

希望能回答你的问题


0
投票

在继承自

Object
的类之外执行此操作的方法是将其静态导入到您的文件中:

using static UnityEngine.Object;
class Foo
{
    void Foop()
    {
        Instantiate(null);
    }
}

等同于

class Foo
{
    void Foop()
    {
        Object.Instantiate(null);
    }
}

在这种情况下,它并不像您所说的那样简单地限定您的静态调用那么清楚,在您不属于对象继承层次结构的情况下,我真的看不到不简单地键入

Object.
有什么好处。

© www.soinside.com 2019 - 2024. All rights reserved.