Unity 지연 구현에 대한 자세한 설명
]게임 흐름을 관리하고, 이벤트를 정렬하고, 실제 행동을 시뮬레이션하는 데 통일 지연을 만드는 것이 필수적입니다. 지연을 달성하는 몇 가지 방법은 다음과 같습니다.
1 waitforseconds
/&] waitforsecondsrealtime
]
: 코 루틴 함수를 선언합니다.
: 지정된 시간 동안 실행을 일시 중지합니다 (게임 속도에 의해 영향을 받음).
waitforsecondsRealtime
: 지정된 시간 동안 실행을 일시 중지합니다 (게임 속도의 영향을받지 않음). 예:
IEnumerator WaitForSecondsExample()
{
// 旋转90度
transform.Rotate(Vector3.right * 90);
// 等待4秒(不受游戏速度影响)
yield return new WaitForSecondsRealtime(4);
// 旋转40度
transform.Rotate(Vector3.right * 40);
// 等待2秒(受游戏速度影响)
yield return new WaitForSeconds(2);
// 旋转20度
transform.Rotate(Vector3.right * 20);
}
2 시간 기반 루프
또는
또는
루프의
수율 리턴 null
: 한 프레임의 실행을 일시 중지합니다.IEnumerator TimeBasedLoopExample()
{
// 旋转90度
transform.Rotate(Vector3.right * 90);
// 等待4秒(受游戏速度影响)
float timer = 0;
while (timer
예:
ienumerator timebasedloopexample ()
{
// 90도 회전합니다
transform.rotate (vector3.right * 90);
// 4 초 동안 기다립니다 (게임 속도의 영향)
플로트 타이머 = 0;
while (타이머
기능
]
기다려서
IEnumerator WaitUntilExample()
{
// 等待玩家分数达到100
yield return new WaitUntil(() => playerScore >= 100);
// 加载下一关
SceneManager.LoadScene("NextLevel");
}
예:
ienumerator waituntilexample ()
{
// 플레이어의 점수가 100에 도달 할 때까지 기다립니다
수율은 New Waituntil ((() => playerscore> = 100)를 반환합니다.
// 다음 레벨을로드합니다
scenemanager.loadscene ( "Nextlevel");
}
invokerepeating
와 유사하지만 그 함수는 지정된 시간 간격에서 반복적으로 호출됩니다.
Invoke("FeedDog", 5); // 5秒后调用FeedDog()
InvokeRepeating("MovePlayer", 0.5f, 0.2f); // 每0.2秒调用MovePlayer(),持续0.5秒。
호출 ( "FeedDog", 5);
InvokerePeating ( "MovePlayer", 0.5f, 0.2f); ]]]
5.
타이머 변수 : 원하는 값에 도달 할 때까지 각 프레임을 증가시킵니다.
void update () { 타이머 = time.deltatime; if (타이머> = 5) { // 5 초 후에 코드를 실행합니다 타이머 = 0; feeddog (); } }
void Update()
{
timer = Time.deltaTime;
if (timer >= 5)
{
// 5秒后执行代码
timer = 0;
FeedDog();
}
}
스크립트에 텍스트를 표시 할 때 지연을 만들려면 다음 코드를 사용할 수 있습니다.
ienumerator showtextwithdelay () { TextUi.text = "디지털 마법사에 오신 것을 환영합니다!"; 수율은 새로운 Waitforseconds (3F)를 반환합니다. textUi.text = ( "선택할 수있는 가장 높은 숫자는"max); 수율은 새로운 Waitforseconds (3F)를 반환합니다. textUi.text = ( "선택할 수있는 가장 낮은 숫자는"min); } STARTCOROUTINE (showTextWithDelay ());
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3