[개발일지] 나폴리탄스파게티 20230531
2023. 6. 9. 17:58ㆍ2학년 1학기 프로젝트

빛 관련 이벤트 구현
플레이어가 빛 밖에 일정시간 있을 경우 이벤트가 발생하도록 구현
어두운 곳에서 20초 이상 있을 경우 이벤트가 발생하며, 손전등을 들고 있을 경우는 30초가 지나야 이벤트 발생
어두운 곳에 있던 플레이어는 빛 안에 5초 이상 있어야 함 (5초 이상 머물러있지 않고 바로 어둠으로 나갈 경우 쌓이고 있던 초에 추가로 쌓임)
콜라이더를 사용해 빛 안의 범위를 지정하고 그 밖으로 나갈 경우 플레이어에게 1초당 1스택이 쌓이도록 하여 구현하였습니다. 플레이어가 콜라이더 접촉을 통해 빛 안에 있는지를 확인하고 빛 안에서 5초가 지나야 플레이어에게 쌓였던 스택이 초기화되도록 하였습니다.
public class PlayerEventController : MonoBehaviour
{
public float eventStack; // 이벤트가 일어나기 위해 쌓여하는 스택
public float playerStack; // 플레이어에게 현재 쌓인 스택
public float lightTimeStack; // 플레이어의 스택이 초기화되기 위해 빛 안에서 유지해야하는 시간(초)
public float lightNowTimeStack; // 빛 안에서 유지한 시간(초)
bool inTheLights = true; // 플레이어가 빛 안에 있는지를 판단하는 변수
void Update()
{
StackUpdate();
// 이벤트 스택에 도달할 경우 이벤트 메서드 호출
if(playerStack >= eventStack)
{
DarknessEvent();
}
}
// 플레이어 오브젝트가 빛과 접촉해있을 경우 playerStack이 0으로 초기화 됨
void OnTriggerStay(Collider collision)
{
inTheLights = true;
if(lightNowTimeStack >= lightTimeStack)
{
StackInitialization();
}
}
// 1초 = 1스택
void StackUpdate()
{
// 스택을 쌓을 때 조건 부여: 플레이어가 빛 안에 있지 않을 때만 스택이 쌓임
if(inTheLights == false)
{
playerStack += Time.deltaTime;
lightNowTimeStack = 0;
}
// 스택을 쌓을 때 조건 부여: 플레이어가 빛 안에 있을 경우 초기화 스택이 쌓임
else
{
if(playerStack != 0)
lightNowTimeStack += Time.deltaTime;
}
}
// 플레이어가 빛 밖으로 나갈 때 inTheLights False
void OnTriggerExit(Collider collision)
{
inTheLights = false;
}
void StackInitialization()
{
lightNowTimeStack = 0;
playerStack = 0;
inTheLights = true;
}
void DarknessEvent()
{
Debug.Log("Event");
}
}
그림 이벤트 구현
(미완료)
원래 그림이 사라지고 뒤틀린 그림이 나타남 이후 플레이어가 이 그림을 뒤집으면 일정시간 후에 다시 돌아오는 이벤트
그림이 뒤집어질 땐 뒤집어지는 모션이 따로 없음
public class PaintEvent : MonoBehaviour
{
public GameObject originalPaint; // 본래 그림 오브젝트를 담을 변수
public GameObject twistedPaint; // 뒤틀린 그림 프리펩을 담을 변수
Vector3 paintPosition; // 그림의 Vector정보를 담을 변수
void Start()
{
paintPosition = originalPaint.transform.position;
Debug.Log(paintPosition);
}
void Update()
{
// T키를 누를 경우 원래 그림 위치에 변형된 그림 생성 (임시)
if(Input.GetKeyDown("t"))
{
Instantiate(twistedPaint, new Vector3(paintPosition));
}
}
}
'2학년 1학기 프로젝트' 카테고리의 다른 글
[개발일지] 나폴리탄스파게티 20230608 (0) | 2023.06.10 |
---|---|
[개발일지] 나폴리탄스파게티 20230607 (0) | 2023.06.09 |
[개발일지] 나폴리탄스파게티 20230602 (0) | 2023.06.09 |
[개발일지] 나폴리탄스파게티 20230601 (0) | 2023.06.09 |
[개발일지] 나폴리탄스파게티 20230530 (1) | 2023.06.09 |