Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

20.01.2013, 13:50

Unity 3d Instantiate Problem (Abhängig von "Maximize on Play")

Hallo

Der Titel klingt sehr skurril, jedoch ist mein Problem noch skurriler.
Ich habe ein Skript für ein Rennspiel gemacht welches Bremsspuren beim Driften erzeugt, diese Bremsspuren sind kleine Objekte welche durch "Instantiate" erzeugt werden, und so ausgerichtet sind dass sie von dem "Hit.Point" zu der letzten Bremsspur gucken. Funktioniert soweit auch, jedoch werden zwischendurch immer wieder Bremsspurobjekte erzeugt welche die Rotation 0 haben. Das wirklich kuriose daran ist dass wenn ich "Maximise on Play" ausschalte und das Objekt wo das Skript angehängt ist auswähle, die Skidmarks alle Richtig ausgerichtet werden. Bloss entstehen dann merwürdige Lücken da zwischen.

PS: Ich weiss nicht ob das hier das Richtige Forum ist, aber wo hätte ich es sonst hinpacken sollen?

Falls es nötig ist, hier ist das Skript (Nur das Nötige):


var rlWheelCollider : WheelCollider;
var skidmark : Transform;
var lastSkidmarkPos : Vector3;
var Rotationtolast : Quaternion;
var relativePos : Vector3;
private var skidmarkPosrl : Vector3;
private var skidmarkPosrr : Vector3;
private var skidmarkPosfl : Vector3;
private var skidmarkPosfr : Vector3;
var hitrl : WheelHit;
var hitrr : WheelHit;
var hitfl : WheelHit;
var hitfr : WheelHit;
var frWheelCollider : WheelCollider;
var flWheelCollider : WheelCollider;
var rrWheelCollider : WheelCollider;
var isDrifting : boolean;
private var SkidAudioSource : AudioSource;
var SkidSound : AudioClip;
var Driftwert : float;

function Awake{
Rotationtolast.y = 1;

}

function Update{

if ((rlWheelCollider.GetGroundHit(hitrl)) && (rrWheelCollider.GetGroundHit(hitrr)) && (flWheelCollider.GetGroundHit(hitfl)) && (frWheelCollider.GetGroundHit(hitfr))){

if((Driftwert>15)&&(Rocket.currentSpeed>0) || (Driftwert<-15)&&(Rocket.currentSpeed>0)){
isDrifting = true;
skidmarkPosrl = hitrl.point;
skidmarkPosrr = hitrr.point;
skidmarkPosfl = hitfl.point;
skidmarkPosfr = hitfr.point;


if(lastSkidmarkPos!= Vector3.zero){
relativePos = lastSkidmarkPos - skidmarkPosrl;
Rotationtolast = Quaternion.LookRotation(relativePos);
Instantiate(skidmark,skidmarkPosrl,Rotationtolast);
Instantiate(skidmark,skidmarkPosrr,Rotationtolast);
Instantiate(skidmark,skidmarkPosfl,Rotationtolast);
Instantiate(skidmark,skidmarkPosfr,Rotationtolast);
}
else{
Rotationtolast.y = Richtung.transform.rotation.y;

}


lastSkidmarkPos = skidmarkPosrl;
}
else{
isDrifting = false;
lastSkidmarkPos = Vector3.zero;
}

}

}


Das Problem in Bildern:
»Jussuv« hat folgendes Bild angehängt:
  • SkidmarkProblem.jpg
Dieser Satz ist eine Lüge!