Flèches droites peuvent changer d'angle #7
@ -97,13 +97,20 @@ public class Projectile : MonoBehaviour
|
|||||||
float angleX = (_destinationX) / _initialXDistance;
|
float angleX = (_destinationX) / _initialXDistance;
|
||||||
float angleY = (_destinationY) / _initialYDistance;
|
float angleY = (_destinationY) / _initialYDistance;
|
||||||
|
|
||||||
Debug.Log("Angle X: " + angleX);
|
|
||||||
Debug.Log("Angle Y: " + angleY);
|
Debug.Log("Angle Y: " + angleY);
|
||||||
|
Debug.Log("Angle X: " + angleX);
|
||||||
|
|
||||||
if(angleY >= 1 || angleY <= -1)
|
if(angleY >= 1 || angleY <= -1)
|
||||||
{
|
{
|
||||||
float lerpStepS = Mathf.Rad2Deg * Mathf.Atan(angleX / angleY);
|
//TODO: L'angle fonctionne mieux, mais il y a toujours des problemes avec les angles pret de X
|
||||||
//TODO: Determiner les angles x et y que la fleche doit prendre selon l'angle qu'elle est tiree.
|
//ou ils sont beaucoup trop verticaux.
|
||||||
|
float lerpStepS;
|
||||||
|
if(angleX > 0.24 || angleX < -0.24) lerpStepS = Mathf.Rad2Deg * Mathf.Atan(angleX / angleY);
|
||||||
|
|
||||||
|
else if(angleX > 0.09 || angleX < -0.09) lerpStepS = -Mathf.Rad2Deg * Mathf.Atan(angleY / angleX);
|
||||||
|
|
||||||
|
else lerpStepS = Mathf.Rad2Deg * Mathf.Atan(angleY / angleX);
|
||||||
|
|
||||||
float angleS = Mathf.Lerp(lerpStepS, 0, 0);
|
float angleS = Mathf.Lerp(lerpStepS, 0, 0);
|
||||||
|
MaximilienBB marked this conversation as resolved
Outdated
|
|||||||
transform.eulerAngles = new Vector3(0, 0, angleS);
|
transform.eulerAngles = new Vector3(0, 0, angleS);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user
Peut-être ajouter des commentaires détaillant ce que font les IF, pour faciliter la maintenance plus tard. Que ce soit ce que les IF font, ou bien ce que les conditions signifient