// Start is called before the first frame update void Start() { beet = FindObjectOfType <BeetMovement>(); ui = FindObjectOfType <UI>(); startStatus = currentStatus; startLocation = transform.position; speed = Mathf.Min(speed, beet.GetSpeed() - 0.1f); _anim = GetComponentInChildren <Animator>(); _rend = GetComponentInChildren <SpriteRenderer>(); }
// Update is called once per frame void Update() { switch (currentStatus) { case Status.offboard: break; case Status.onboard: if (Vector2.Distance(transform.position, beet.transform.position) < 0.3f) { CollectFriend(); } break; case Status.following: _anim.SetBool("Run", true); transform.position = Vector2.MoveTowards(transform.position, beet.GetFollowLoc(), (beet.GetSpeed() - speed) * Time.deltaTime); if (beet.transform.position.x < transform.position.x) { _rend.flipX = true; } else if (beet.transform.position.x > transform.position.x) { _rend.flipX = false; } break; } if (beet.GetMoveState() == BeetMovement.moveState.win || beet.GetMoveState() == BeetMovement.moveState.lose) { currentStatus = Status.offboard; } }