Как я могу открыть дверь с анимацией? - PullRequest
0 голосов
/ 05 июля 2018

У меня есть этот скрипт:

Ray ray = new Ray (cam.transform.position, cam.transform.forward);
        RaycastHit hit;
        Debug.DrawRay (transform.position, ray.direction * 50f);
        if (Input.GetKeyDown (KeyCode.E)) {

            if (Physics.Raycast (ray, out hit, 50.0f)) {
                if (hit.collider.gameObject.tag == "Door") {

                    Debug.Log ("YEAH");
                }
            }
        } 

Как мне запустить анимацию открытой двери?

1 Ответ

0 голосов
/ 05 июля 2018

Есть несколько вещей, которые вам нужно знать, прежде чем вы сможете оживить эту дверь. Есть несколько способов оживить объект в Unity. Для таких простых вещей, как вы, вы можете просто повернуть объект (но вы должны понимать, что вам понадобится метод Coroutine, Mathf.MoveTowards или Mathf.Lerp, чтобы избежать мгновенного перемещения при вызове всего в Обновлении). Но вы также можете использовать анимацию, созданную кем-то другим, в таких приложениях, как Blender. Или, наконец, создайте анимацию с помощью Unity в редакторе игр и создайте Animator для анимации вашей двери.

Я думаю, что вы должны использовать этот способ. Сначала следуйте этому официальному руководству: https://docs.unity3d.com/Manual/animeditor-CreatingANewAnimationClip.html

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

После этого вы должны создать Animator Controller: https://docs.unity3d.com/Manual/class-AnimatorController.html

Затем вы создадите новое состояние с помощью вашей анимации и создадите связь между начальным состоянием и вашей анимацией «Открытая дверь». После этого вы просто создаете простой объект bool (в вашем контроллере Animator).

И вы добавите

this.GetComponent (). SetBool ("nameofyourboolintheanimatorcontroller", true);

к вашему сценарию (конечно, это действительно только в том случае, если ваш контроллер Animator находится в объекте, назначенном вашему сценарию ... если нет, вы должны создать новую переменную Animator и назначить ее (например, вы можете сделать ее общедоступной и назначить ее) это в редакторе).

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