将Vector3的值分配给另一个Vector3

时间:2014-07-27 19:29:32

标签: c# unity3d

在以下代码行中,_pro是另一个类的实例,其中Transform名为Target,而posi也是Vector3,并且一个有效的值。

_pro.Target.transform.position = new Vector3(posi.x, posi.y, posi.z);

我想将posi的值分配给Target.transform.position,但会抛出NullReferenceException

检查完每个部分后,_pronull。以下是我尝试实例化_pro:

的方法
public projectile _pro;
GameObject go = GameObject.Find("enemy");    // go is not null
_pro = go.GetComponent<projectile>();        // _pro is null

1 个答案:

答案 0 :(得分:1)

找到的"enemy"游戏对象没有附加projectile个组件,这就是go.GetComponent<projectile>()为您提供null的原因。

您需要在代码中的某个位置实例化射弹。你可以这样做:

go.AddComponent<projectile>(); // where go is the "enemy" game object

或者这个:

var pro = CreateInstance<projectile>();
pro.transform.parent = go.transform.parent; // go is the "enemy" game object