Ich arbeite an der Erstellung eines Ofscreen-Enemy-Indikators mit Hilfe des unten genannten Tutorials. Allerdings kann ich den Indikator drehen, um auf den Feind zu zeigen, aber der Indikator bewegt sich nicht vom Ende zum Ende des Bildschirms.Wie man den Ofscreen-Feindindikator in Unity 3D erstellt?
Dies ist das gewünschte Ergebnis:
Bis jetzt habe ich die unten, um herauszufinden, haben es geschafft, Bitte helfen.
var screenCenter:Vector3 = new Vector3(0.5, 0.5, 0f);
//Note coordinates are translated
//Make 00 the centre of the screen instead of bottom left
screenpos -= screenCenter;
//find angle from center of screen instead of bototom left
var angle:float = Mathf.Atan2(screenpos.y, screenpos.x);
angle -= 90 * Mathf.Deg2Rad;
var cos:float = Mathf.Cos(angle);
var sin:float = -Mathf.Cos(angle);
screenpos = screenCenter + new Vector3(sin*150, cos*150, 0);
//y=mx + b format
var m:float = cos/sin;
var ScreenBounds:Vector3 = screenCenter;// * 0.9f;
//Check up and down first
if(cos > 0){
screenpos = new Vector3(ScreenBounds.y/m, ScreenBounds.y, 0);
}else{//down
screenpos = new Vector3(-ScreenBounds.y/m, -ScreenBounds.y, 0);
}
//If out of bound then get point on appropriate side
if(screenpos.x > ScreenBounds.x){//Out of bound must be on right
screenpos = new Vector3(ScreenBounds.x, ScreenBounds.y*m, 0);
}else if(screenpos.x < ScreenBounds.x){//Out of bound must be on left
screenpos = new Vector3(-ScreenBounds.x, -ScreenBounds.y*m, 0);
}
//Remove the co ordinate translation
screenpos += screenCenter;
var DistanceIndicatorRectT = DistanceIndicator.GetComponent(RectTransform);
DistanceIndicatorRectT.localPosition = new Vector3(screenpos.x * scrWidth/2, screenpos.y * scrHeight/2, DistanceIndicatorRectT.localPosition.z * screenpos.z);
DistanceIndicator.transform.rotation = Quaternion.Euler(0, 0, angle*Mathf.Rad2Deg);
Können Sie Ihr Problem ein wenig besser erklären? Alles, was Sie jetzt haben, ist "Ich möchte dieses Verhalten mit diesem Code". Was genau versagt? Was ist der Unterschied zwischen Ihrer gewünschten und erhaltenen Ausgabe? –
@DJ IV DJIV: Wo haben Sie den obigen Code hinzugefügt? Update()? – user1509674