Как подняться кубом на стену в единстве - PullRequest
2 голосов
/ 13 апреля 2019

Мне нужно взобраться по стенам куба, я написал код, чтобы перевернуть куб, но мне также нужно перебираться через стену при попадании в него.

Я попробовал Box-Collider и твердое тело и изменил положение игрока в кубе и установил положение стены.

// roll a cube player 

  IEnumerator moveLeft()
{
      for (int i = 0; i < (90 / step); i++)
      {
          Player.transform.RotateAround(Left.transform.position, 
         Vector3.forward, step);
        yield return new WaitForSeconds(speed);
      }

      Center.transform.position = Player.transform.position;
      input = true;
}


 // try to Climb a wall

 private void OnCollisionEnter(Collision collision)
{
    if (collision.gameObject.CompareTag("hill"))
    {
        //collider = collision.gameObject;
        //isGrounded = false;
        Player.GetComponent<Rigidbody>().drag = 20;
        Player.GetComponent<Rigidbody>().useGravity = false;

    }
    if (collision.gameObject.CompareTag("floor"))
    {
        Player.GetComponent<Rigidbody>().drag = 1;
        Player.GetComponent<Rigidbody>().useGravity = true;
        isGrounded = true;
    }


}

Он взбирается, но не защелкивается со стеной.Мне нужно взбираться на стены в режиме привязки, и если стены нет, игрок должен быть уронен.

Мне нужно, чтобы в видео было показано следующее свойство

https://www.youtube.com/watch?v=fo-7kKeb-TM

Изображение движения моего игрока

Я также попробовал следующий код, но безуспешно.

void moveLeft()
{
    rotationModifier = 90f;
    appliedVector = Vector3.left;
    appliedRotation = Quaternion.AngleAxis(90f, Vector3.forward);

    previousPosition = rb.position;
    previousRotation = rb.rotation;

    targetPosition = previousPosition + appliedVector;
    targetRotation = previousRotation * appliedRotation;
    Player.transform.position = targetPosition;
    Player.transform.rotation = targetRotation;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...