Einheit - Wie zu instanziieren neues Objekt mit ursprünglichen Eigenschaften (wie Geschwindigkeit)?
Ich versuche zu implementieren ist ein tower defense-Spiel in der Einheit, und ich kann nicht herausfinden, wie kann ich zuweisen, eine Geschwindigkeit oder eine Kraft, um eine neue instanziierte Objekt (in der creator-Objekt script)
Ich habe einen Turm, der soll Schießen Sie eine Kugel auf den Feind, die Auslöser für seine collider. Dies ist das Skript der Türme:
function OnTriggerEnter(other:Collider){
if(other.name=="Enemy")
{
ShootBulletTo(other.transform);
}
}
function ShootBulletTo(target:Transform)
{//public var Bullet:Transform
var BulletClone = Instantiate(Bullet,transform.position, Quaternion.identity); //ok
BulletClone.AddForce(target.position); //does not compile since Transform.AddForce() does not exist.
}
Ich denke das problem ist, ich habe mit einem Transform
variable instanzieren, aber ich brauche eine GameObject
variable Geschwindigkeit, Kraft etc.. So wie ich das instanziieren der Kugel mit Anfangsgeschwindigkeit?
Danke für die Hilfe.
- Die Einheit tag ist für Microsoft Unity. Bitte nicht missbrauchen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie Zugang Festkörper Komponente der Kugel-Klon, um die Kraft verändern, nicht transformieren.
Hier ist, wie Ihr code Aussehen sollte:
Es ist auch ein gutes Beispiel in der unity script reference
http://docs.unity3d.com/Documentation/ScriptReference/Object.Instantiate.html
[EDIT] ich bin mir ziemlich sicher, dass Sie nicht wollen, fügen Sie die Feinde position als eine Kraft, stattdessen sollten Sie hinzufügen eine Richtung, die geht in Richtung der Feinde position.
Subtrahieren Sie zwei Plätze gewinnen einen Richtungsvektor zwischen Ihnen, also die ShootBulletTo Funktion sollte wie folgt Aussehen: