Why enemy falling? And why not working Flip(0 method?
Enemy have 2 Colliders(one trigger, one not)
EnemyBehaviorScript : MonoBehaviour {
private Animator animator;
public int cMaxDistance = 10;
private bool isDead;
public bool isFacingRight=true;
public float speed;
public Transform explosionSpawn;
public GameObject explosion;
public Transform player;
public bool gotcha;
void Start(){
Flip ();
GameObject playerDistance = GameObject.FindWithTag (“Player”);
if (playerDistance != null) {
player = playerDistance.GetComponent ();
}
animator = GetComponent();
isDead = false;
}
private void FixedUpdate(){
animator.SetBool (“isDead”, isDead);
if(!isDead)
rigidbody2D.velocity = new Vector2 (speed, rigidbody2D.velocity.y);
if(speed > 0 && !isFacingRight)//&&!isDead)
//отражаем персонажа вправо
Flip();
//обратная ситуация. отражаем персонажа влево
else if (speed < 0 && isFacingRight)//&&!isDead)
Flip();
}
void Update()
{
PlayerSearch ();
if (isDead) {
if (!(GameObject.Find(“headExplosion(Clone)”)))
Instantiate (explosion, explosionSpawn.position, explosionSpawn.rotation);
}
}
void OnTriggerEnter2D(Collider2D col){
if (col.gameObject.tag == “WeaponTree”) {
isDead = true;
Destroy (gameObject,1.0f);
}
if (col.gameObject.tag == “triggerChangeDirection”) {
speed = - speed;
}
}
private void Flip()
{
//меняем направление движения персонажа
isFacingRight = !isFacingRight;
//получаем размеры персонажа
Vector3 theScale = transform.localScale;
//зеркально отражаем персонажа по оси Х
theScale.x *= -1;
//задаем новый размер персонажа, равный старому, но зеркально отраженный
transform.localScale = theScale;
}
void PlayerSearch(){
float dist = (player.position - transform.position).sqrMagnitude;
gotcha = dist <= cMaxDistance * cMaxDistance; //квадрат расстояния сравниваем с квадратом заданного предела!
if(gotcha)
Debug.Log(“FUCK YOU!”);
}
}