Sto lavorando alla creazione di un indicatore nemico Ofscreen utilizzando il tutorial menzionato nel link sottostante. Tuttavia, posso far ruotare l'indicatore per puntare al nemico ma l'indicatore non si sposta da una estremità all'altra dello schermo.Come creare l'indicatore di Ofscreen del nemico in Unity 3D?
Questo è il risultato desiderato:
Fino ad ora sono riuscito a capire il seguito Si prega di aiuto.
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);
Puoi spiegare un po 'meglio il tuo problema? Tutto quello che hai ora è "Voglio questo comportamento con questo codice". Cosa sta fallendo esattamente? Qual è la differenza tra l'output desiderato e quello ottenuto? –
@DJ IV DJIV: dove hai aggiunto il codice di cui sopra? Update()? – user1509674