Открыть/закрыть дверь в сопрограмме ⇐ C#
Открыть/закрыть дверь в сопрограмме
Я не совсем понимаю, как управлять поворотами в сопрограммах, я управляю ими через сопрограммы, потому что каждый интерактивный объект проходит через общий интерактивный скрипт, я пробовал так, но желаемый эффект не тот, на который я надеялся, я бы как простое плавное движение для открытия и закрытия двери, но с моим скриптом оно замедляется только один раз, затем вам нужно подождать, пока оно перезагрузится, а затем оно снова замедляется, если я несколько раз нажимаю кнопку для взаимодействия , дверь быстро закрывается/открывается.. не могли бы вы мне помочь?
с использованием System.Collections; использование UnityEngine; общедоступный класс DoorsWithoutKey: MonoBehaviour { public bool open = false; [SerializeField] Private float Smooth = 2.0f; [SerializeField] Private float DoorOpenAngle = 90.0f; частный Vector3 по умолчаниюRot; частный Vector3 openRot; [SerializeField] public float lerpDuration = 0; недействительный старт() { defaultRot = Transform.eulerAngles; openRot = новый Vector3(defaultRot.x, defaulRot.y + DoorOpenAngle, defaulRot.z); } публичная пустота NewOpenClosed() { открыть = !открыть; StartCoroutine(OpenDoor()); } частный IEnumerator OpenDoor() { время плавания истекло = 0; while (timeElapsed
Я не совсем понимаю, как управлять поворотами в сопрограммах, я управляю ими через сопрограммы, потому что каждый интерактивный объект проходит через общий интерактивный скрипт, я пробовал так, но желаемый эффект не тот, на который я надеялся, я бы как простое плавное движение для открытия и закрытия двери, но с моим скриптом оно замедляется только один раз, затем вам нужно подождать, пока оно перезагрузится, а затем оно снова замедляется, если я несколько раз нажимаю кнопку для взаимодействия , дверь быстро закрывается/открывается.. не могли бы вы мне помочь?
с использованием System.Collections; использование UnityEngine; общедоступный класс DoorsWithoutKey: MonoBehaviour { public bool open = false; [SerializeField] Private float Smooth = 2.0f; [SerializeField] Private float DoorOpenAngle = 90.0f; частный Vector3 по умолчаниюRot; частный Vector3 openRot; [SerializeField] public float lerpDuration = 0; недействительный старт() { defaultRot = Transform.eulerAngles; openRot = новый Vector3(defaultRot.x, defaulRot.y + DoorOpenAngle, defaulRot.z); } публичная пустота NewOpenClosed() { открыть = !открыть; StartCoroutine(OpenDoor()); } частный IEnumerator OpenDoor() { время плавания истекло = 0; while (timeElapsed
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Учитывая 3D-модель двери + дверной коробки – как мне обнаружить дверь и отделить сетку?
Anonymous » » в форуме C# - 0 Ответы
- 76 Просмотры
-
Последнее сообщение Anonymous
-