이 조명을 페이드 인하 기 전에 Unity C #에서 2 초 지연을 추가하려면 어떻게해야합니까?

제레미 맥클라우드

Update 메서드의 코드를 가져 와서 응용 프로그램이 시작된 후 2 ~ 3 초 동안 실행을 지연시키고 싶습니다.

public class LightController : MonoBehaviour {
public Light Light_01;
public Light Light_02;
public Light Light_03;
public float smoothValue;

// Use this for initialization
void Start () {
    Light_01.intensity = 0;
    Light_02.intensity = 0;
    Light_03.intensity = 0;

}

// Update is called once per frame
void Update () {


    if (Light_01.intensity <= 8)
        Light_01.intensity += Time.deltaTime * smoothValue;
    if (Light_02.intensity <= 5)
        Light_02.intensity += Time.deltaTime * (smoothValue / 2);
    if (Light_03.intensity <= 1.8)
        Light_03.intensity += Time.deltaTime * (smoothValue / 3);

}

}

코드는 내 장면에서 세 개의 조명을 천천히 페이드 인하는 것입니다. 또한 이것을 코딩하는 더 좋고 효율적인 방법이 있다면 주어진 조언에 기뻐할 것입니다!

감사합니다!

mgear

간단한 지연을위한 몇 가지 옵션 :

  • Invoke를 사용하여 bool 설정 지연 : https://docs.unity3d.com/ScriptReference/MonoBehaviour.Invoke.html

    bool isRunning = false;
    void Start()
    {
        Invoke("StartFader", 3);
    }
    
    void StartFader()
    {
        isRunning = true;
    }
    
    void Update()
    {
        if (!isRunning) return; // early exit
    
  • CoRoutines 사용 및 지연 추가 : https://docs.unity3d.com/ScriptReference/WaitForSeconds.html

  • Update 루프 내에서 별도의 타이머 변수를 증가시키고 3 초가 넘을 때까지 확인합니다.

    float timer = 0;
    void Update()
    {
        timer += Time.deltaTime;
        if (timer>3)
        {
           //....
        }
    
  • (Time.time> 3)인지 확인하면 게임 시작 시점부터 시간이 반환됩니다.

     void Update()
     {
         if (Time.time>3)
         {
             print(1);
         }
    

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다debugcn@gmail.com 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관