UniRx의 간단한 견본 9(Timer 및 Interval 일정 시간 후 실행)

5527 단어 UniRxUnityC#
UniRx의 간단한 샘플 사용 설명서
이전(Observable W.Get 다운로드)
UniRx의 간단한 샘플 사용 설명서 10 (Delay 추진 지연)

일정 시간 후 집행


이번에 소개한 것은 알기 쉽고 여러 차례 등장한 Timer와 Interval입니다.
각각 일정 시간 후, 일정 시간마다 한 번씩 미룬다.
예를 들어 애니메이션 같은 것은 그런 느낌의 물건을 만들 때 매우 편리하다.
JavaScript의 setTimeout 및 setInterval과 비슷한 동작을 수행합니다.
이번에는 각각 5초 뒤 파랗게 변하는 게임Object와 50ms 간격으로 차츰 파랗게 변하는 게임Object를 제작한다.

미리 준비하다


Timer Sample.cs의 GameObject 붙여넣기
Inteval Sample.cs의 GameObject 붙여넣기

5초 후 파란색


Timer는 n 초 후 어떤 일이 발생하고 싶은지 쉽게 파악할 수 있습니다.
이번 게임Object는 5초 후에 파랗게 변한다.
코드가 이런 느낌이에요.
TimerSample.cs
using UnityEngine;
using System.Collections;
using UniRx;
using System;

public class TimerSample : MonoBehaviour {

    // Use this for initialization
    void Start () {
        //5秒たったらプッシュ
        Observable.Timer(TimeSpan.FromSeconds(5)).Subscribe(_ =>
        {
            //青くする
            GetComponent<SpriteRenderer>().color = Color.blue;
        }).AddTo(this);
    }

}
나는 특별히 어려운 점이 없다고 생각한다.
Observable.Timer(TimeSpan dueTime)
구문을 사용합니다.
그다음에 파란색.

50ms마다 점차 초록색으로 변한다


Interval은 특정 시간마다 발생할 처리를 쉽게 설명할 수 있습니다.
애니메이션과 주요 처리를 분리할 수 있기 때문에 추천합니다.
이번에는 차츰 푸르러진다.
IntervalSample.cs
using UnityEngine;
using System.Collections;
using UniRx;
using System;


public class IntevalSample : Base {

    // Use this for initialization
    void Start () {

        //50ms毎に購読する
        Observable.Interval(TimeSpan.FromMilliseconds(50)).Subscribe(l =>
        {
            //緑色に近づける
            GetComponent<SpriteRenderer>().color = Color.Lerp(Color.white, Color.green, l / 200.0f);
        }).AddTo(this);
    }

}
아까 Timer는 인터벌로 바뀌었을 뿐이야.
Observable.Interval(TimeSpan dueTime)
일정 시간에 한 번 누르다.
밀린 값이 몇 번째로 밀려서 그걸로 해요.자, 천천히 색깔 바꿔.

실행 결과


따라서 이런 느낌으로 5초 후면 파란색과 녹색에 가깝게 변할 수 있다.
Color.Lerp

보태다


동일한 동작을 수행하는 TimerFrame 및 IntervalFrame 수도 있습니다.

좋은 웹페이지 즐겨찾기