Имеется код передвижения персонажа (Врага) по платформе. Позиция задаётся рандомно. Проблема в том, что некоторые участки кодва работают 1 раз или вообще игнорируются.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AiController : MonoBehaviour {
private float waitTime;
private Animator anim;
private bool isFacingRight = true;
private float currentTr;
public Transform translatePoint;
public float speed;
public float startWaitTime;
public float minX;
public float maxX;
void Start ()
{
waitTime = startWaitTime;
translatePoint.position = new Vector2(Random.Range(minX, maxX), translatePoint.position.y);
anim = GetComponent<Animator>();
currentTr = transform.position.x;
}
void Update ()
{
transform.position = Vector2.MoveTowards(transform.position, translatePoint.position, speed*Time.deltaTime);
if (Vector2.Distance(transform.position, translatePoint.position) < 0.2f)
{
if(waitTime <= 0)
{
translatePoint.position = new Vector2(Random.Range(minX, maxX), translatePoint.position.y);
waitTime = startWaitTime;
anim.SetBool("Walck", false);
} else {
waitTime -= Time.deltaTime;
}
}
float pos = translatePoint.position.x;
if (currentTr < pos && isFacingRight == false) //здесь игнор
{
Debug.Log("Left");
anim.SetBool("Walck", true);
Flip();
}
else if (currentTr > pos && isFacingRight == true) //здесь работает 1 раз
{
Debug.Log("Right");
anim.SetBool("Walck", true);
Flip();
}
}
private void Flip()
{
//меняем направление движения персонажа
isFacingRight = !isFacingRight;
transform.Rotate(0f, 180f, 0f);
}
}
P. S. простите за тупой вопрос :)