假如:A下面有一个B的子物体,B物体身上有脚本向量Vector3 speed=固定值;B物体的UPDATE在一直执行
transform.Translate(speed * Time.fixedDeltaTime);
这时候你移动A,会发现speed值会随着A的移动在改变,程序中没有任何地方在修改speed。
改变了多少呢,这个有可能是bug,建议自己重新定义一个speed,确保speed没有被别的地方使用修改,测试下
public class Move_test : MonoBehaviour {
public Vector3 Speed;
public GameObject Cube;
public GameObject Sphere;
// Use this for initialization
void Start () {
Speed = Sphere.transform.forward;
}
// Update is called once per frame
void Update () {
Sphere.transform.Translate(Speed*0.1f * Time.deltaTime);
}
}
我测试的应该没问题啊,你是怎么做的?B身上的Speed你移动A的时候怎么检测的改变?上面是我测试的代码,我在Cube(A)和Sphere(B)上都挂了脚本,手动拖到脚本里的物体。然后运行时在Scene面板拖拽Cube,并没有发现Speed发生变化。/*还是说我们版本不一样的问题?*/