V jednotke sa ovládací objekt otočí o 90 stupňov pozdĺž osi Y vlastnou rýchlosťou (dá sa tiež prispôsobiť), potom sa zastaví a potom sa vráti do pôvodnej polohy.

Unity Control Object Is Rotated 90 Degrees Along Y Axis Custom Speed



1. Musíte ovládať objekt, ktorý sa otáča pozdĺž osi Y, nasledovne:



2. Napíšte skript, ktorý riadi rotáciu objektu, a to nasledovne:



using UnityEngine using System.Collections public class Test_CycleRoate : MonoBehaviour { Public int rotateAngle=90 //rotation angle Public int rotateSpeed=2 //rotation speed Private bool isOpen=false //Open the exhaust door Private bool isClose=false //close the damper // Use this for initialization void Start () { } // Update is called once per frame void Update () { if(isOpen) { RotateXOpen(rotateAngle) } if(isClose&&isOpen==false) { RotateXClose() } } /// /// Open the damper /// public void OpenEnterWindDoor() { isOpen=true Debug.Log('1111') } /// /// Close the intake damper /// public void CloseEnterWindDoor() { isClose = true Debug.Log('222') } /// /// Rotates the X open. /// /// Curent rotate angle. (The default range is 0-90 degrees) private void RotateXOpen(int CurentRotateAngleY=90) { if (CurentRotateAngleY > 0 && CurentRotateAngleY =CurentRotateAngleY) { isOpen=!isOpen Debug.Log(isOpen) } } else { Debug.Log(GetType()+'/CtrlGameObjectRoate()/Set the rotation angle not in the range of 0-90 degrees, please re-enter!!!') } } /// /// Rotates the X close. /// private void RotateXClose() { Quaternion target=Quaternion.Euler(90,0,0) transform.rotation=Quaternion.RotateTowards(transform.rotation,target,rotateSpeed) if(transform.rotation.eulerAngles.y<=0) { isClose=!isClose Debug.Log(isClose) } } }

3. Pridajte ovládací skript k objektu, ktorý je potrebné ovládať, a potom zadajte tlačidlovú metódu:



Po štvrté, stlačením príslušného tlačidla dosiahnete efekt