본문 바로가기

TIL74

01.29 (TIL-Unity) 구현한 기능: 화면 어두워지는 효과와 위치 이동 (Fade Screen and Teleport) 목적 : 플레이어가 특정 지점(루프 스타트)에 도달했을 때 시각적으로 인지할 수 있는 화면 효과를 제공하고, 지정된 다른 위치(루프 앤드)로 이동시키는 것 사용한 스크립트 : SW_Loop 구현코드(간단한로직) 더보기 IEnumerator FadeScreenAndTeleport(GameObject player) { // 화면을 어두워지게 하는 과정 float timer = 0; while (timer 2024. 1. 29.
01.26 (TIL-Unity) 오늘은 작업한 스크립트의 리펙토리를 진행중이다. 객체지향 설계 원칙의 이해: 단일 책임, 개방/폐쇄, 리스코프 치환 원칙 1. 단일 책임 원칙 (Single Responsibility Principle, SRP) 정의: 한 클래스는 하나의 책임만 가져야 한다는 원칙입니다. 즉, 클래스가 변경되어야 하는 이유는 단 하나여야 합니다. 목적: 이 원칙은 클래스의 복잡성을 줄이고, 유지보수를 용이하게 하며, 테스트를 간편하게 만들기 위해 사용됩니다. 적용 방법: 클래스가 여러 기능을 갖고 있다면, 각 기능을 개별 클래스로 분리하여 각 클래스가 하나의 책임만을 지도록 합니다. 예시: 사용자 인터페이스 처리, 비즈니스 로직 처리, 데이터베이스 연동 처리 등 각각의 기능을 별도의 클래스로 분리할 수 있습니다. 1-1.. 2024. 1. 26.
01.25 (TIL-Unity) 구현한 기능: 진동 효과 (Camera Shake Effect) 목적: 플레이어가 특정 영역에 진입하거나 특정 상호작용을 할 때 시각적 및 몰입감 있는 피드백 제공. 사용한 스크립트: SW_ShakeEffect , Cinemachine 라이브러리 사용. 구현 코드 (간단한 로직): 더보기 // 진동 효과 적용 함수 private void ApplyShakeEffect() { // Cinemachine 컴포넌트를 통해 진동 효과 적용 var perlin = virtualCamera.GetCinemachineComponent(); perlin.m_AmplitudeGain = amplitudeGain; // 진동 강도 설정 perlin.m_FrequencyGain = frequencyGain; // 진동 빈도.. 2024. 1. 25.
01.24 (TIL-Unity) 구현한 기능: 자동 문 닫힘 기능 (Auto-Close Door) 1. 시간 기준 자동 문 닫힘: 목적: 일정 시간이 지난 후 자동으로 문을 닫기 위함. 사용한 스크립트: SW_AutoCloseDoor 변경된 코드: 더보기 // 시간 기준 자동 닫힘 로직 private IEnumerator AutoCloseDoor() { yield return new WaitForSeconds(autoCloseDelay); // 지정된 지연 시간 후 실행 // 문 닫힘 로직 } 사용 이유: 사용자가 문을 통과한 후 자동으로 닫히게 하여 게임의 리얼리티를 증가시키고, 플레이어의 추가적인 입력을 줄이기 위함. 2. 트리거 기준 자동 문 닫힘: 목적: 플레이어가 특정 영역(트리거)에 들어갔을 때 문을 자동으로 닫기 위함. 사.. 2024. 1. 24.
01.23 (TIL-Unity) 구현한 기능: 자동 문 닫힘 기능 목적: 게임 내에서 문이 특정 시간이 지난 후 자동으로 닫히도록 하는 기능을 구현. 이를 통해 게임플레이에 현실성과 도전 요소를 추가하고, 플레이어의 상호작용에 따른 결과를 자연스럽게 표현. 사용한 스크립트: SW_AutoCloseDoor 구현 코드: 더보기 using System.Collections; using UnityEngine; public class SW_AutoCloseDoor : MonoBehaviour { public DoorController doorController; // DoorController 스크립트에 대한 참조 public GameObject door; // 자동으로 닫힐 문 객체 public float autoCloseDelay = 2.0.. 2024. 1. 23.
01.22 (TIL-Unity) 오늘은 각자의 작업 결과물을 합치는 작업을 진행 했다. 그리고 이후의 작업은 기능보다는 곧 다가올 중간 발표회를 대비한 버그수정, 맵디자인, 등의 디테일 적인 부분에 신경을 쓸듯하다. 2024. 1. 22.
01.19(TIL-Unity) 구현한 기능: 아이템 상호작용 및 사용 목적: 특정 아이템이 필요한 상황에서 플레이어의 인벤토리를 확인하여 해당 아이템이 있는지 검사하고, 있다면 그 아이템을 사용하거나 소모하는 기능을 구현하는 것 사용한 스크립트: SW_ItemInteract 구현 코드: 더보기 public class SW_ItemInteract : MonoBehaviour, IInteractable_HT { public SW_ItemData requiredItemData; // 필요한 아이템 데이터 public GameObject actionUI; // 표시할 UI 오브젝트 public string newTag; // 상호작용 후 변경할 태그 public void OnInteract() { Interact(); } private vo.. 2024. 1. 19.
01.18 (TIL-Unity) 인벤토리 시스템의 향상, UI 상호작용의 개선 주요 기능 및 코드: 1. 아이템 슬롯 UI 색상 변경 목적: 사용자가 아이템을 선택하거나 조합 과정에 있는 아이템을 시각적으로 구분하기 위함. 사용한 스크립트: SW_ItemSlotUI 코드 구현: 더보기 public void SetSlotColor(Color color) { // 아이템 슬롯의 배경색 변경 background.color = color; } 사용 이유: 사용자 인터페이스의 직관성을 향상시키고, 사용자의 현재 선택이나 조합 상태를 명확히 표시하기 위함. 2. 조합 과정 초기화 목적: 인벤토리 닫힘 또는 조합 불가능 상황 시 조합 과정 초기화 사용한 스크립트: SW_Inventory 코드 구현: 더보기 private void ResetMixin.. 2024. 1. 18.
01.17 (TIL-Unity) 사용자 인터랙션에 대한 응답 플레이어의 입력에 반응하여 특정 UI를 보여주거나 숨기는 기능은 게임의 몰입감과 사용자 경험을 높여준다. 기능 구현: 중요 아이템 UI 표시 및 제거 SW_ItemData 스크립트 수정 더보기 [CreateAssetMenu(fileName = "Item", menuName = "New Item")] public class SW_ItemData : ScriptableObject { [Header("Important Item")] public GameObject importantItemDisplay; // 중요한 아이템을 표시할 UI public Canvas importantItemCanvasPrefab; // 중요한 아이템 UI를 위한 캔버스 프리팹 } SW_Inventory .. 2024. 1. 17.
01.16 (TIL-Unity) 아이템 믹스 시스템: 두 개의 아이템을 조합하여 새로운 아이템을 생성하는 ItemMix 스크립트의 구현. 조합 로직 및 조합 가능 여부를 판단하는 방법. 인벤토리 시스템과의 통합을 통해 사용자 인터페이스에서 아이템을 선택하고 조합하는 기능 추가 어제의 기능 구현에 이어서 아이템 믹스 시스템을 어느정도 구현했다. 인벤토리에 사용한 코드 더보기 public void OnMixButton() { // 'selectedItem'이 null이 아니며, 그 아이템의 타입이 'Normal'인 경우에만 조합 과정을 시작 // 이는 조합이 가능한 아이템을 사용자가 선택했는지 확인하는 과정 if (selectedItem != null && selectedItem.item.type == ItemType.Normal) { /.. 2024. 1. 16.