Ich bin hier grade schier am verzweifeln. Wenn ich ein Object an der Position eines bereits vorhandenen Objektes instantiaten und von dort mit einer Geschwindigkeit von x nach vorne bewegen will mach ich das jetzt mal mit folgendem Script:
var irgendwas : Rigidbody;
var x = 20;
function Update()
{
if( Input.GetButtonDown( "Fire1" ) )
{
var irgendwasNeu : Rigidbody = Instantiate(irgendwas, transform.position, transform.rotation );
irgendwasNeu.velocity = transform.forward * x;
}
}
Soweit, so gut. Nur warum erscheint das Object jetzt ab und an mal da wo es soll, meistens jedoch auf der Y-Achse stark nach unten verschoben? Es kann doch nicht sein das sich mein Computer bzw. Unity da verrechnet...transform.position sollte ja wohl nicht zum generieren von Zufällen genutzt werden.
Ich bin stutzig geworden wo in meinem Projekt der Raketenwerfer einfach keine Raketen ausspucken wollte, der Sound sowie die Explosionsgeräusche aber von weit weg ertönten.Konnte das erst absolut nicht einordnen bis ich auf die Idee kam vom Boden unter meinem Character mal den Meshrenderer abzuschalten. Da sah ich die Raketen ne Etage tiefer erscheinen und loszischen. Ich habs jetzt in nem Testscenario mal nachgebaut und es passiert das Gleiche. Ich hab einen Character mit nem Raketenwerfer als Child. Dort hängt obiges Script drann. Mal erscheinen die Raketen wie vorgesehen, meistens aber weiter unten.
Test Scenario: Raketen