CharacterController застревает в верхней части ящиков (проблемы с коллайдером?) - PullRequest
0 голосов
/ 28 марта 2019

(я редактирую код СЕЙЧАС, ЭТО РАБОТАЕТ (с функцией neu jump), похоже, проблема в том, что это функция isGrouned (), но я до сих пор не знаю, почему мой персонаж не выскочил)

Персонаж застревает, когда я пытаюсь прыгнуть ближе к блоку (и движется в направлении блока).Некоторая подсказка, что может происходить и как ее решить?

ситуация:

situation

Кажется, персонаж застревает, когда контроллер персонажаЗвезда коллайдера, уменьшающая радиус.

Информация NavMesh: Информация NavMesh 2 [NavMesh information 2

символьный контроллер:

character controller

Я ожидал, что персонаж достигнет вершины коробки, или, по крайней мере, он сможет подняться по этой небольшой разнице

код перехода:

 public void jump()
    {

        if (OnSlope())
        {
            print("controller.height: " + controller.height);
            controller.Move(Vector3.down * controller.height / 2 * slopeForce * Time.deltaTime);
        }

        print("key press jump");

        JumpMode = true;
        StartCoroutine(JumpEvent());

    }

        private IEnumerator JumpEvent()
{
    controller.slopeLimit = 90.0f;
    float timeInAir = 0.0f;
    //print("IEnumerator JumpEvent");

    float timePassed = 0;
    while (timePassed < 1.5F)
    {
        float jumpForce = jumpFallOff.Evaluate(timeInAir);
        controller.Move(Vector3.up * jumpForce * jumpMultiplier * Time.deltaTime);
        timeInAir += Time.deltaTime;
        // Code to go left here
        timePassed += Time.deltaTime;

        yield return null;
    }

    /*
    do
    {
        float jumpForce = jumpFallOff.Evaluate(timeInAir);
        controller.Move(Vector3.up * jumpForce * jumpMultiplier * Time.deltaTime);
        timeInAir += Time.deltaTime;
        //print("INTOWHILE JumpEvent");
        //print("inside- controller.isGrounded: " + controller.isGrounded);
        //print("inside-(controller.collisionFlags & CollisionFlags.Below) == 0): " + ((controller.collisionFlags & CollisionFlags.Below) == 0));//.ToString()
        //print("inside-((controller.collisionFlags & CollisionFlags.Above) == 0) " + ((controller.collisionFlags & CollisionFlags.Above) == 0));
        yield return null;

    }
    while (!controller.isGrounded);// &&  controller.collisionFlags != CollisionFlags.Below);//  .Above); ((controller.collisionFlags & CollisionFlags.Below) == 0) && ((controller.collisionFlags & CollisionFlags.Above) == 0));//
    */


    //print("outside- controller.isGrounded: " + controller.isGrounded);
    //print("outside- (controller.collisionFlags & CollisionFlags.Below) == 0): " + ((controller.collisionFlags & CollisionFlags.Below) == 0));//.ToString()
    //print("outside- ((controller.collisionFlags & CollisionFlags.Above) == 0) " + ((controller.collisionFlags & CollisionFlags.Above) == 0));

    controller.slopeLimit = 45.0f;
    JumpMode = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...