//движение мячика к стартовой позиции void MoveToStartPosition() { rb.isKinematic = true; collider2D.enabled = false; var startPos = ReturnPosition; var dist = Vector3.Distance(transform.position, startPos); transform.position = Vector3.Lerp(transform.position, startPos, MOVE_TIME * Time.deltaTime); if (dist <= 0.01f) { rb.velocity = Vector2.zero; rb.isKinematic = false; collider2D.enabled = true; var tp = transform.position; tp = startPos; transform.position = tp; state = StateBall.STAY; if (BallReturnEvent != null) { BallReturnEvent(); } } }
public void resetPosition() { endParticleSystem.gameObject.SetActive(false); ballAnimator.SetBool("inGame", false); stateBall = StateBall.isIdle; parent.transform.position = Vector3.zero; transform.position = Vector3.zero; }
void OnDisable() { rb.velocity = Vector2.zero; var tp = transform.position; tp = ReturnPosition; tp.z = 0f; transform.position = tp; state = StateBall.STAY; }
//запуск мячика public void Push(Vector2 force) { if (!IsReady()) { return; } rb.velocity = force; isGraund = false; state = StateBall.MOVE; StartCoroutine(TimerSpeed()); }
//задает мячу состояние возврата на старт public void BackToStart() { if (state == StateBall.MOVE) { state = StateBall.RETURN; isGraund = true; isLongFly = false; addedSpeed = 1f; rb.velocity = Vector2.zero; } //если мячи не двигаются, но они не на позиции для возврата - меняем состояние на Return if (state == StateBall.STAY && Vector3.Distance(transform.position, ReturnPosition) > 0.01f) { var tp = transform.position; tp = ReturnPosition; transform.position = tp; } }
void UpdateState() { switch (state) { case StateBall.STAY: break; case StateBall.MOVE: if (isGraund) { state = StateBall.RETURN; } break; case StateBall.RETURN: MoveToStartPosition(); StopCoroutine(TimerSpeed()); break; } }
void Awake() { rb = GetComponent <Rigidbody2D>(); collider2D = GetComponent <Collider2D>(); state = StateBall.STAY; //состояния мяча }
public void setStateBall(StateBall state) => stateBall = state;
public void play() { ballAnimator.SetBool("inGame", true); stateBall = StateBall.isBounce; setEnableBallAnimator(true); }