본문 바로가기

TIL74

03.15 (TIL-Unity) 구현한 기능: 함정 생성 시스템 목적: 이 시스템은 게임 환경 내에 플레이어의 경로를 방해하고 게임 플레이에 도전적인 요소를 추가하는 함정을 동적으로 생성합니다. 플레이어는 이 함정들을 피하거나 극복함으로써 게임을 진행해야 합니다. 사용한 스크립트: FootManager 간단한 코드 로직 더보기 void SpawnTraps() { Vector2 floorSize = floorScale * 10f; // 바닥 오브젝트의 크기 계산 Vector3 basePosition = transform.position; // 기준 위치 설정 for (int i = 0; i 2024. 3. 15.
03.14 (TIL-Unity) 구현한 기능: 발판 및 함정 발판 생성 시스템 목적: 이 시스템은 게임 환경 내에서 플레이어가 이동하고 상호작용할 수 있는 발판과 함정 발판을 동적으로 생성합니다. 목적은 게임 내에 도전적인 요소를 추가하고, 플레이어의 탐험 및 문제 해결 능력을 시험하는 것입니다. 사용한 스크립트: BoardManager 간단한 코드 로직 더보기 // 발판을 생성하는 메소드 void SpawnBoards() { // boardSize의 값에 따라 정사각형 그리드 형태로 발판을 생성하는 이중 반복문 for (int x = 0; x 2024. 3. 15.
02.22(TIL-Unity) 구현한 기능: 라이트 모드 조절 목적: 기본 시야와 야간 시야 사이에서 자연스러운 전환을 가능하게 함으로써, 플레이어가 게임 내 다양한 시각적 환경에서 불편함 없이 경험할 수 있도록 하기 위함입니다. 이를 통해 게임의 실제감을 높이고, 플레이어에게 더 몰입감 있는 환경을 제공하려는 목적입니다. 사용한 스크립트: NightVision 구현 코드 (간단한 코드 로직): 더보기 if (isNightVisionActive) { // 나이트 비전이 활성화되었을 경우 Render Mode를 Auto로 설정 light.renderMode = LightRenderMode.Auto; } else { // 나이트 비전이 비활성화되었을 경우 Render Mode를 ForcePixel로 설정 light.renderMode =.. 2024. 2. 22.
02.21 (TIL-Unity) 유니티 라이트 컴포넌트에 대한 이해 유니티의 라이트 컴포넌트는 장면에 조명을 추가하고, 그 특성을 조절하여 게임이나 애플리케이션에 생동감과 분위기를 부여하는 데 핵심적인 역할을 합니다. 다양한 종류의 라이트와 그 설정을 이해하는 것은 실감 나는 시각적 경험을 창출하는 데 중요합니다. 1. General 섹션 Type: 조명의 형태를 결정합니다. Directional: 무한한 거리에서 오는 평행한 빛으로, 일관된 방향을 가지며 태양과 같은 효과를 낼 때 사용합니다. Point: 하나의 점에서 모든 방향으로 빛을 방출합니다. 전구나 촛불 같은 광원을 모사할 때 적합합니다. Spot: 한 점에서 특정 방향으로 빛이 집중되어 나갑니다. 스포트라이트 효과를 낼 때 사용됩니다. Area: 넓은 면적에서 빛을 방출하.. 2024. 2. 21.
02.20 (TIL-Unity) 구현한 기능: 인터랙티브 키패드와 트리거 기반 오브젝트 활성화/비활성화 시스템 목적: 이 시스템의 주요 목적은 플레이어가 특정 퍼즐을 해결하고, 그 결과에 따라 게임 환경 내에서 특정 오브젝트를 활성화 또는 비활성화함으로써, 게임 진행에 필요한 시각적 힌트와 방향을 제공하는 것입니다. 이는 플레이어의 몰입감을 증가시키고, 게임 내에서의 상호작용을 풍부하게 만듭니다. 사용한 스크립트 : SW_KeypadEventUI 구현 코드 (간단한 코드 로직): 더보기 public class SW_KeypadEventUI : MonoBehaviour { [SerializeField] private List objectsToToggle; // 활성화/비활성화할 오브젝트 목록 public void ActivateObjec.. 2024. 2. 20.
02.16 (TIL-Unity) 구현한 기능: 문 상태 제어 및 신호 활성화 목적: 이 기능의 주요 목적은 특정 조건이 만족될 때 게임 내의 문을 자동으로 열거나 닫는 동작을 제어하고, 이를 통해 플레이어에게 시각적 또는 기능적 신호를 제공하는 것입니다. 사용한 스크립트: SW_LightHint, DoorController 더보기 // SW_LightHint 스크립트 내 CheckDoorsAndActivate 메서드 private void CheckDoorsAndActivate() { bool allDoorsOpen = doorOpen.All(door => door.isOpen); bool allDoorsClose = doorClose.All(door => !door.isOpen); if (allDoorsOpen && allDoorsC.. 2024. 2. 16.
02.14 (TIL-Unity) 구현한 기능: 아이템 분해 기능 목적: 아이템 분해 기능은 플레이어가 인벤토리 내의 아이템을 분해하여 새로운 자원이나 다른 아이템으로 변환할 수 있게 하는 기능입니다. 이를 통해 게임 내에서 아이템 관리의 유연성을 높이고, 플레이어에게 다양한 전략적 선택지를 제공합니다. 사용한 스크립트: SW_ItemDismantle, SW_Inventory 구현 코드 (간단한 코드 로직): 더보기 if (selectedItem != null && ( selectedItem.item.type == ItemType.Unique || selectedIte selectedItem.item.type == ItemType.Normal)) { // 분해 스크립트 가져오기 및 분해 실행 var dismantleScript = sel.. 2024. 2. 14.
02.08 (TIL-Unity) 구현한 기능: 빔 클리어 목적: 게임 내에서 특정 퍼즐 또는 임무를 완료한 후 빔 관련 컴포넌트와 오브젝트를 비활성화하거나 제거하여, 게임 플레이를 다음 단계로 진행시키고 성능 최적화를 달성하는 것. 사용한 스크립트: SW_BeamClear 구현 코드 로직: 더보기 // 빔 관련 컴포넌트 비활성화 및 태그, 레이어 변경 beamScript.enabled = false; beamScript.gameObject.layer = LayerMask.NameToLayer("Default"); beamScript.gameObject.tag = "Untagged"; 사용 이유: 플레이어가 특정 임무를 완료한 후에는 더 이상 빔을 사용할 필요가 없으며, 이를 통해 게임의 진행을 명확하게 하고, 불필요한 계산 및 인터랙션.. 2024. 2. 8.
02.07 (TIL-Unity) 구현한 기능: 빔, 빔 컬러, 빔 힌트 1. 빔 기능 목적: 플레이어가 특정 오브젝트와 상호작용하여 빛을 발사할 수 있게 함. 사용한 스크립트: SW_Beam 간단 구현 코드 로직: 빔의 활성화/비활성화를 토글하는 기능. 더보기 // 빔 활성화/비활성화 public void OnInteract() { beamLight.enabled = !beamLight.enabled; isBeamActive = !isBeamActive; // 상태 토글 } 사용 이유: 게임 내에서 플레이어에게 탐험 요소를 제공하고 퍼즐 해결에 필요한 도구로 사용. 2. 빔 컬러 변경 목적: 플레이어가 상호작용을 통해 빔의 색상을 변경할 수 있게 함. 사용한 스크립트: SW_ColorSwitch 간단 구현 코드 로직: 상호작용 시 빔의.. 2024. 2. 7.
01.30 (TIL-Unity) 오늘은 어제의 루프작업에 연장선이다. 구현한 기능: 루프 지점 제어 및 상호작용 스위치 목적: 게임 내에서 플레이어가 특정 지점에 도달하면 다른 지점으로 이동하도록 하는 기능과, 이러한 '루프' 기능을 제어하는 상호작용 스위치를 구현. 사용한 스크립트: SW_Loop 및 SW_LoopSwitch. 더보기 // SW_Loop: 플레이어가 지정된 트리거에 도달하면 루프 앤드 위치로 이동 IEnumerator FadeScreenAndTeleport(GameObject player) { // 화면을 어두워지게 하는 과정 // 플레이어 위치 이동 // 화면을 다시 밝게 만드는 과정 } // SW_LoopSwitch: 플레이어가 상호작용할 때 등록된 루프 지점 오브젝트들을 제거 public void OnIntera.. 2024. 1. 30.