본문 바로가기
TIL

02.07 (TIL-Unity)

by 오랑이귀엽다 2024. 2. 7.

구현한 기능: 빔, 빔 컬러, 빔 힌트

1. 빔 기능

  • 목적: 플레이어가 특정 오브젝트와 상호작용하여 빛을 발사할 수 있게 함.
  • 사용한 스크립트: SW_Beam
  • 간단 구현 코드 로직: 빔의 활성화/비활성화를 토글하는 기능.
더보기

// 빔 활성화/비활성화
public void OnInteract() {
    beamLight.enabled = !beamLight.enabled;
    isBeamActive = !isBeamActive; // 상태 토글
}

  • 사용 이유: 게임 내에서 플레이어에게 탐험 요소를 제공하고 퍼즐 해결에 필요한 도구로 사용.

2. 빔 컬러 변경

  • 목적: 플레이어가 상호작용을 통해 빔의 색상을 변경할 수 있게 함.
  • 사용한 스크립트: SW_ColorSwitch
  • 간단 구현 코드 로직: 상호작용 시 빔의 색상을 순차적으로 변경.
더보기

// 색상 변경
public void OnInteract() {
    currentColorIndex = (currentColorIndex + 1) % colors.Length;
    beamLight.color = colors[currentColorIndex]; // 색상 업데이트
}

  • 사용 이유: 다양한 상황에서 빔을 사용하여 시각적 효과와 게임 플레이의 다양성을 증가시킴.

3. 빔 힌트 기능

  • 목적: 빔의 색상에 따라 특정 힌트를 활성화/비활성화.
  • 사용한 스크립트: SW_BeamHint
  • 간단 구현 코드 로직: 빔의 현재 색상과 일치하는 힌트만 표시.
더보기

// 힌트 가시성 업데이트
private void Update() {
    bool isVisible = beamScript.isBeamActive && ((int)hintColor == colorSwitch.currentColorIndex);
    SetTextVisibility(isVisible); // 텍스트 가시성 설정
}

  • 사용 이유: 플레이어가 게임 내 특정 퍼즐을 해결할 수 있는 힌트 제공.

트러블슈팅: 힌트 표출 문제

  • 왜(Why): 힌트 오브젝트의 제대로 된 표출은 사용자가 게임 내에서 필요한 정보를 얻을 수 있게 하며, 게임 플레이의 흐름을 원활하게 유지하는 데 중요합니다. 제대로 작동하지 않는 힌트 시스템은 사용자 경험을 저하시키고, 게임의 진행에 방해가 될 수 있습니다.
  • 어떻게(How): 처음에는 오브젝트의 전체 활성화/비활성화를 통해 힌트를 표출하려 했으나, 이 방식이 문제의 원인임을 파악했습니다. 이를 해결하기 위해, 문제를 보다 세부적인 수준에서 접근하기로 결정하였고, 오브젝트 내부의 특정 컴포넌트를 대상으로 기능을 수정하는 방향으로 전환하였습니다.
  • 무엇(What): 오브젝트 내부에서 TextMeshPro 컴포넌트의 활성화/비활성화를 조절하는 방식으로 기능을 변경하였습니다. 이 변경을 통해, 빔의 상태와 색상에 따라 힌트 오브젝트의 가시성이 정확히 업데이트되도록 개선하였습니다. 이 방식은 힌트의 가시성을 더 세밀하게 조절할 수 있게 하며, 더 나은 사용자 경험을 제공합니다.

 

'TIL' 카테고리의 다른 글

02.14 (TIL-Unity)  (0) 2024.02.14
02.08 (TIL-Unity)  (0) 2024.02.08
01.30 (TIL-Unity)  (0) 2024.01.30
01.29 (TIL-Unity)  (0) 2024.01.29
01.26 (TIL-Unity)  (0) 2024.01.26