C# 在销毁预置然后重新创建预置后,新克隆对象不会移动

C# 在销毁预置然后重新创建预置后,新克隆对象不会移动,c#,unity3d,C#,Unity3d,我有代码来生成一个旋转的球,它向左、向右移动并落下。繁殖点(空对象)设置为离地面约3个单位,因此它将落在地面上并向左或向右移动。 我面临的问题是,在我摧毁了预制体的克隆体并将其重置为在原始位置产卵后,它会掉落到地面并移动,但它只在原始位置产卵,不会掉落到地面。任何帮助都将不胜感激。非常感谢。 ` 公共类繁殖旅鼠:单行为{ //这是将会产卵的旅鼠的数量 私有整数mm=6; //创建预置游戏对象以将预置附加到 公共游戏对象预制; //用于初始化 无效开始(){ 繁殖(); } void FixedU

我有代码来生成一个旋转的球,它向左、向右移动并落下。繁殖点(空对象)设置为离地面约3个单位,因此它将落在地面上并向左或向右移动。 我面临的问题是,在我摧毁了预制体的克隆体并将其重置为在原始位置产卵后,它会掉落到地面并移动,但它只在原始位置产卵,不会掉落到地面。任何帮助都将不胜感激。非常感谢。 `

公共类繁殖旅鼠:单行为{
//这是将会产卵的旅鼠的数量
私有整数mm=6;
//创建预置游戏对象以将预置附加到
公共游戏对象预制;
//用于初始化
无效开始(){
繁殖();
}
void FixedUpdate()
{
重置();
}
void Spawn()
{
//用于创建所需数量旅鼠的for循环
对于(int i=0;i
`

将创建的新对象指定给用于克隆对象的预置

试试这个

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

根据我所能收集到的信息,我在下面陈述-

  • 我不知道您的整个代码是如何工作的,但是从注释来看,我认为您应该通过取消对代码的注释来设置速度-

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


  • 很抱歉,我忘记删除FixedUpdate(),我只是在测试这是否是导致问题的原因。我的代码使用Update()。欢迎使用。您可以选择此作为答案,将此问题标记为已解决
    //This is where the game object is being created
    GameObject o = (GameObject)Instantiate(prefab, transform.position, Quaternion.identity);
    
    //This sets the speed of lemming.
    //prefab.GetComponent<lemmingMovement>().speed = Random.Range(3.0f, 4.0f); ///speed = 2.0f;