Record/TIL

[Unity] 코루틴으로 스프라이트 작동시키기

석영 2024. 7. 17. 23:25
반응형
스프라이트에 DOTween 애니메이션 컴포넌트 달려있음

이렇?게 상황별로 여러개 다는게 맞나 싶긴한데 아직 방법을 몰라서 일단 이렇게 해둠..

위치-> 흔들기-> 크기가  적용되어있다.

 

 

코드

아직 임시라 안쓰는 코드는 주석처리 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class StoryController : MonoBehaviour
{
    // 완전 임시
    //[SerializeField] private GameObject attackSprite; // 반격하는 스프라이트
    [SerializeField] private GameObject deathSprite;  // 죽는 스프라이트

    private bool knifeCollected = false; // 칼을 수집했는지 여부

    void Start()
    {
        //attackSprite.SetActive(false);
        deathSprite.SetActive(false);

        // 30초 후에 죽는 코루틴 임시로 5초
        StartCoroutine(DieAfterDelay(5.0f));
    }

    // 인형이 칼 수집O
    void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Knife"))
        {
            // 칼 수집여부
            knifeCollected = true;

            // 죽는 코루틴 중지
            StopCoroutine("DieAfterDelay");
            //attackSprite.SetActive(true);
        }
    }

    IEnumerator DieAfterDelay(float delay)
    {
        yield return new WaitForSeconds(delay);

        // 인형이 칼 수집X
        if (!knifeCollected)
        {
            Debug.Log("칼 수집 실패");
            deathSprite.SetActive(true);
        }
    }
}

 

 

기능 영상

5초 후 스프라이트 나옴

 

 

 

오늘의 회고

디자인은 3D 제외 내가 다 하는데 좀 힘이 듭니다.

 

 

반응형