반응형
스테이지를 넘길 때마다 밤이되게 만들기
검색하면 대부분 시간으로 흘러가는 코드들만 있길래 한번 해봤습니다.
코드
DayNightCycle.cs
기존에는 시간으로 흐르는 코드였는데 비슷하겠지~ 하고 그대로 가져와서 해봤는데 달라서... 어.. 처음에 좀 헤멨던 것 같다. 역시 처음해보는건 다 어려운 듯..
using UnityEngine;
public class DayNightCycle : MonoBehaviour
{
private int stage = 0; // 현재 스테이지
private int dayStages = 5; // 낮 스테이지 수
private int totalStages = 10; // 전체 스테이지 수
[Header("Sun")]
public Light sun;
public Gradient sunColors;
public AnimationCurve sunIntensity;
[Header("Moon")]
public Light moon;
public Gradient moonColors;
public AnimationCurve moonIntensity;
void Start()
{
UpdateStage(0); // 초기 스테이지 설정
}
public void UpdateStage(int newStage)
{
stage = newStage;
if (stage < dayStages)
{
// 낮
UpdateLighting(sun, sunColors, sunIntensity);
}
else
{
// 저녁
UpdateLighting(moon, moonColors, moonIntensity);
}
}
void UpdateLighting(Light lightSource, Gradient gradient, AnimationCurve intensityCurve)
{
float intensity = intensityCurve.Evaluate((float)(stage % totalStages) / (totalStages - 1));
lightSource.color = gradient.Evaluate((float)(stage % totalStages) / (totalStages - 1));
lightSource.intensity = intensity;
GameObject go = lightSource.gameObject;
if (intensity <= 0 && go.activeSelf)
{
go.SetActive(false);
}
else if (intensity > 0 && !go.activeSelf)
{
go.SetActive(true);
}
}
// 옆에서 볼때랑 위에서 볼때랑 조명 고정시킬라고
public void RotateLightUp()
{
if (stage < dayStages)
{
sun.transform.rotation = Quaternion.Euler(30f, 0f, 0f);
}
else
{
moon.transform.rotation = Quaternion.Euler(30f, 0f, 0f);
}
}
public void RotateLightDown()
{
if (stage < dayStages)
{
sun.transform.rotation = Quaternion.Euler(0f, 0f, 0f);
}
else
{
moon.transform.rotation = Quaternion.Euler(0f, 0f, 0f);
}
}
}
오늘의 회고
발표가 제가 걸렸습니다... 저는 무대공포증이 있는 아가라 뒤에서 서포트만 해주는데 앞에 나서야한다니 무섭군여 하지만 열심히 사람들을 충격의 도가니탕으로 만들어보겠습니다.
열심히했으니 반응도 좋았으면 좋겠습니다.
반응형
'Record > TIL' 카테고리의 다른 글
[Unity] 빌보드(Billboard):: 오브젝트가 카메라만 계속 바라보게 하는 기능 (2) | 2024.07.25 |
---|---|
[Unity] 마우스커서 안보이게 하기 (0) | 2024.07.24 |
[Unity] Coroutine VS Unitask (1) | 2024.07.22 |
[Unity] Unity 생명주기(Unity Life Cycle) (0) | 2024.07.19 |
[Unity] URP에서 3D 파티클 UI위에 뜨게하기 (폭죽 파티클) (2) | 2024.07.18 |