我创造了一个游戏,其中有一个炮塔击落物体,并且只有当它们在射程内时......至少这是想法。
现在我能够检测物体距离,如果距离足够近,炮塔就会发射物体:
if( distanceToTarget < 10 )
{
Instantiate(Bullet, transform.position, new Quaternion());
}
唯一的问题是子弹没有目标。在Bullet的脚本(C#)上我定义了一个应该保持目标的public GameObject Target
。但是我该怎么设置呢?因为当我实例化子弹时,我知道目标。我会定期将其设置为Bullet.Target = target
,但我是Unity的新手,并且无法查看如何设置我实例化的游戏对象的属性。
子弹的脚本然后将检查目标是否存在,如果不是自我毁灭,如果前往目标:)
但我怎样才能设定它的目标?
答案 0 :(得分:1)
此Instantiate函数返回实例化对象。 您所需要做的就是:
if( distanceToTarget < 10 )
{
GameObject obj = (GameObject) Instantiate(Bullet, transform.position, new Quaternion());
obj.GetComponent<Bullet>().Target = target;
}
答案 1 :(得分:0)
在我看来,你过于复杂的事情,因为你似乎想要操纵子弹。我不知道你的炮塔是如何工作的,但是我在游戏中看到的大多数炮塔都会在目标开始时跟踪目标,然后在目标足够接近时开始射击。 / p>
Pseudo-ish,像这样:
void Update () {
if ( canSeeTarget() ) {
rotateToTarget();
if ( targetInRange() ) {
startShooting();
}
}
}