在销毁预制件然后重新创建预制件后,新的克隆对象不会移动

时间:2015-10-16 05:37:21

标签: c# unity3d

我有代码来产生一个向左,向右和向下移动的旋转球。产卵点(空对象)设置在地面以上约3个单位,因此它将落到地面并向左或向右移动。 我面临的问题是,在我销毁预制件的克隆并将其重置为在原始位置产生并期望它落到地面并移动之后,它只会在原始位置产生并且它不会落到地面。任何帮助将不胜感激。谢谢。   `

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<label for="1">
  <input type="radio" id="1" name="test" value="1">Radio 1</label>&nbsp;&nbsp;Total: <span>1</span>
<br>
<label for="2">
  <input type="radio" id="2" name="test" value="1">Radio 2</label>&nbsp;&nbsp;Total: <span>1</span>
<br>
<label for="3">
  <input type="radio" id="3" name="test" value="1">Radio 3</label>&nbsp;&nbsp;Total: <span>1</span>
<br>
<label for="4">
  <input type="radio" id="4" name="test" value="1">Radio 4</label>&nbsp;&nbsp;Total: <span>1</span>
<br>

`

2 个答案:

答案 0 :(得分:2)

prefab = (GameObject)Instantiate(prefab, transform.position, Quaternion.identity);

您正在将您创建的新对象分配给用于克隆对象的预制件

试试这个

//This is where the game object is being created
GameObject o = (GameObject)Instantiate(prefab, transform.position, Quaternion.identity);

答案 1 :(得分:0)

从我能收集到的信息,我在下面说明 -

  1. 我不知道你的整个代码是如何工作的,但是从评论中我认为你应该通过取消注释代码来设置速度 -

    //This sets the speed of lemming.
    //prefab.GetComponent<lemmingMovement>().speed = Random.Range(3.0f, 4.0f); ///speed = 2.0f;
    
  2. 如果对象是刚体,则检查新创建的预制件/克隆是否也具有刚体。有时我会在最近的更改后忘记更新我的预制件。