Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何实例化一个游戏对象而不是它的克隆_C#_Unity3d - Fatal编程技术网

C# 如何实例化一个游戏对象而不是它的克隆

C# 如何实例化一个游戏对象而不是它的克隆,c#,unity3d,C#,Unity3d,我在场景中实例化了一个游戏对象,但是它的克隆被实例化了。我需要游戏对象,而不是它的克隆。更改名称并不能解决我的问题 public GameObject player; public GameObject collectableObjects; private void Awake() { GenerateSceneElements(); } void GenerateSceneElements() { Insta

我在场景中实例化了一个游戏对象,但是它的克隆被实例化了。我需要游戏对象,而不是它的克隆。更改名称并不能解决我的问题

 public GameObject player;
    public GameObject collectableObjects;
    private void Awake()
    {
        GenerateSceneElements();

    }
    void GenerateSceneElements()
    {
        Instantiate(player, new Vector3(0, 0.5f, 0), Quaternion.identity);
        //TODO make it better random
        for (int i = 0; i < 5; i++)
        {

            float randomX = Random.Range(-5f, -2f);
            float randomZ = Random.Range(5f, 20f);
            Instantiate(collectableObjects, new Vector3(randomX, 0.5f, randomZ), Quaternion.identity);
        }

    }
公共游戏对象玩家;
公共游戏对象可收集对象;
私人空间
{
生成元素();
}
无效生成元素()
{
实例化(player,新向量3(0,0.5f,0),四元数.identity);
//要做得更好吗
对于(int i=0;i<5;i++)
{
float randomX=随机范围(-5f,-2f);
float randomZ=随机范围(5f,20f);
实例化(collectableObjects,新矢量3(randomX,0.5f,randomZ),四元数.identity);
}
}

您可以实例化预置,修改实例化的克隆,并在完成后用它替换原始资产


或者根据您的需要,在更改数据/退出游戏等时传递您需要保存的数据。

您的意思是什么?使用“始终”创建给定对象的“克隆”。。。我想你只是想改变它的位置,为什么不使用
player.transform.position=newvector3(0,0.5f,0);player.transform.rotation=Quaternion.identity?为什么克隆不充分?我已经处理过了。我在游戏开始时生成每个对象,也希望摄影机跟随玩家,但只是因为在场景中实例化了一个玩家,它看起来像克隆人,所以摄影机没有跟随玩家,因为引用变为空,但修复了这个问题,这就是为什么克隆人对我来说不够