Target
的转换,而目标属于Projectile
类。这就是我所做的,通过它可以正常工作:
_pro.Target.transform.position = new Vector3(posi.x, posi.y, posi.z); //value gets assigned to Target here
Instantiate (bulletprefab, position, Quaternion.identity); //projectile is attached to bulletprefab so projectile gets called from here
现在,在射弹中,在试图访问Target.transform.position
时,它会给出UnassignedReferenceException:还没有分配射弹的变量'Target'。
我在玩家类中成功为Target
分配了值,如何在投射中访问相同的值?
答案 0 :(得分:1)
您的主要问题是您在实例化包含该变量的对象之前尝试更新变量的值。
由于您的Projectile
类具有对目标的引用,因此首先需要引用Projectile
类实例。
然后实例化您的对象,然后找到Projectile
类。
GameObject g = Instantiate (bulletprefab, position, Quaternion.identity) as GameObject;
Projectile p = g.GetComponent<Projectile>();
然后使用您对炮弹的新参考来将值赋予目标。
p.SetTarget(target.transform.position);
您也可以使用SendMessage来解决同样的问题。
GameObject g = Instantiate (bulletprefab, position, Quaternion.identity) as GameObject;
g.SendMessage("SetTarget", target.transform.position);
在这两种情况下,我假设你有一个名为SetTarget
的函数,它允许你在Projectile
类中设置目标。