实例化问题

Posted CocomoNo1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实例化问题相关的知识,希望对你有一定的参考价值。

Object.Instantiate

public static Object Instantiate(Object original);
public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);
//实例化Prefab
  例1:
 public GameObject prefab;
 void Start()
    {
        for (int i = 0; i < 10; i++)
            Instantiate(prefab, new Vector3(i * 2.0f, 0, 0), Quaternion.identity);
    }
//
例2:
Transform theClonedExplosion;
theClonedExplosion = Instantiate(explosion) as Transform;
//脚本里面定义:
public GameObject PrefabNo;
那么,在使用这个PrefabNo做Instantiate()的时候,接收返回值变量的类型必须是GameObject:
GameObject newObject = Instantiate(myPrefab) as GameObject;

又比如prefab类型是自定义的UserObject,

public UserObject prefab;

那么在使用Instantiate()时我们需要写成:

UserObject newObject = Instantiate(myPrefab) as UserObject;

注:比较容易犯的一个错误声明的类型是GameObject

public GameObject myPrefab;

在Instantiate()返回值却想要用Transform,如下:

Transform newObject = Instantiate(myPrefab) as Transform;

这个时候就会出现newObject为null的问题。


以上是关于实例化问题的主要内容,如果未能解决你的问题,请参考以下文章

启用 Proguard 后无法实例化片段

Android - 试图实例化一个不是片段的类

调用片段活动错误无法实例化活动。无法转换为 android.app.Activity

操作栏选项卡:使用多次实例化的单个片段时如何传递参数

java 动态片段实例化

java 片段实例化器