public GameObject[] gos;
private void Start()
{
gos = GameObject.FindGameObjectsWithTag("Player");
}
public void Movement()
{
Vector3 direction = gos[0].transform.localPosition - transform.localPosition;
Debug.Log("Side: " + direction.x);
if (direction.x > 0 && anim.GetBool("InCombatt") == true)
{
sprite.flipX = true;
}
else if (direction.x < 0 && anim.GetBool("InCombatt") == true)
{
sprite.flipX = false;
}
Vector3 directio = gos[1].transform.localPosition - transform.localPosition;
Debug.Log("Side: " + directio.x);
if (directio.x > 0 && anim.GetBool("InCombatt") == true)
{
sprite.flipX = true;
}
else if (directio.x < 0 && anim.GetBool("InCombatt") == true)
{
sprite.flipX = false;
}
void Dial()
{
float distance = Vector3.Distance(transform.localPosition, gos[0].transform.localPosition);
// Debug.Log("Distance: " + distance);
if (distance > 4.0f)
{
isHit = false;
anim.SetBool("InCombat", false);
}
}
void Diatt()
{
float distanc = Vector3.Distance(transform.localPosition, gos[1].transform.localPosition);
// Debug.Log("Distance: " + distanc);
if (distanc > 4.0f)
{
isHit = false;
anim.SetBool("InCombat", false);
}
}
if (direction.x * direction.x > directio.x * directio.x)
{
Diatt();
}else { Dial(); }
}
this is my problem ,i use array to calculate both distances and directions between two player and one enemy,but when enemy is InCombat enemy consider correct distance but flip to the other side ,because i think it consider the direction of other player,help,( for one player works)