[개발일지] 나폴리탄스파게티 20230601

2023. 6. 9. 19:532학년 1학기 프로젝트

 


그림 이벤트 구현

원래 그림이 사라지고 뒤틀린 그림이 나타남 이후 플레이어가 이 그림을 뒤집으면 일정시간 후에 다시 돌아오는 이벤트

그림이 뒤집어질 땐 뒤집어지는 모션이 따로 없음

public class PaintEvent : MonoBehaviour
{
    public GameObject originalPaint; // 원래 그림 오브젝트를 담을 변수
    public GameObject twistedPaint; // 뒤틀린 그림 오브젝트를 담을 변수

    public bool destroyTwistedPaint = false;
    
    MeshRenderer meshRenderer;
    Transform originalPaintPosition;

    void Start()
    {
        originalPaintPosition = originalPaint.transform;
        twistedPaint.transform.rotation = Quaternion.Euler(0,0,0); // 제 모습으로 돌려놓음
        meshRenderer = originalPaint.GetComponent<MeshRenderer>();
    }

    void Update()
    {
        // 이벤트 진행 (임시-이벤트 매니저로 수정 예정)
        if(eInput.GetKeyDown("t"))
        {
            Event();
        }
        // Y키를 누를 때 그림 뒤집기 (임시-상호작용으로 수정 예정)
        if(Input.GetKeyDown("y"))
        {
            // 그림을 뒤집음
            originalPaint.transform.rotation = Quaternion.Euler(0, 180, 0);
            Debug.Log("뒤집기");

            // 25초 후 원래 그림으로 돌아옴
            Invoke("Original", 25);
        }
    }

    void Event()
    {
        // 뒤틀린 그림 생성
        Instantiate(twistedPaint, originalPaintPosition);

        // 원래 그림 끄기
        meshRenderer.enabled = false;

    }

    // 원래 그림으로 돌아옴
    void Original()
    {
        // 숨겼던 원본 그림을 나타나게 함
        meshRenderer.enabled = true;
        // 원본 그림 방향을 원래대로 돌려놓음
        originalPaint.transform.rotation = Quaternion.Euler(0, 0, 0);
        // 변형된 그림을 파괴함
        destroyTwistedPaint = true;
    }
}