분류 전체보기 (40) 썸네일형 리스트형 [TIL][Unity] 확률 가중치 부여하기 확률 가중치대부분의 게임에서 확률형 아이템을 사용할 때, 가치가 높은 아이템의 경우 일반 아이템에 비해 등장 확률이 작다. 이를 흔히 확률에 가중치를 부여했다고 한다. 오늘은 개인 프로젝트를 진행하며 해당 부분의 구현을 진행하였다. private float GetWeightByRank(string rank){ switch(rank) { case "일반": return 70.0f; case "희귀": return 25.0f; case "전설": return 5.0f; default: return 1.0f; }} 우선은 다음과 같은 메서드를 작성하였다. 유닛의 등급.. [TIL][Unity] LoadScene 개선하기 LoadScene일반적으로 Unity에서 다른 Scene을 로드하기 위해서는 SceneManager.LoadScene("SceneName" or Scene Number) 과 같은 방법을 사용한다. 하지만 SceneName이나 SceneNumber를 직접 입력하게 되었을 때 문제가 발생할 수 있고 가독성도 좋지 못하다는 단점이 있다. 프로젝트 발표에서 이를 개선하기 위한 방법에 대한 피드백을 받았다. Enum 으로 Scene 관리하기Enum을 사용하여 Scene을 관리할 수 있다.public enum Scene{ Menu, Play} 위와 같이 Menu Scene과 Play Scene을 정의하였다. enum의 경우 정수형으로 변환될 수 있으므로 이와 같이 지정한다면 다음과 같이 Scene을 불러.. [TIL][Unity] PlayerPrefs 이용하기 PlayerPrefs이번 진행한 프로젝트는 러닝액션 게임으로 획득 점수로 겨루는 게임이다. 점수를 획득하고 계산하는 기능은 그다지 어렵지 않다. 하지만 과연 여태 획득한 점수, 그 중에서 최고 점수를 기록하고 싶을 때, 어떤 방법을 사용하는 것이 좋을까? 간단한 데이터 저장하기Unity에서 유저의 데이터를 저장하기 위해 JSON 파일을 많이 사용한다. 이는 직렬화를 통해 저장된 데이터의 보안을 확보할 수 있다는 장점이 있지만, 우리의 프로젝트와 같이 간단한 데이터를 저장하기 위해 사용하기엔 구현이 복잡하다. 따라서 우리는 PlayerPrefs를 사용하여 간단한 데이터를 저장하기로 결정했다. 키워드와 데이터PlayerPrefs를 통해 데이터를 저장하기 위해서는 키워드를 사용해야 한다. 말 그대로 저장된 데.. [TIL][Unity] 오브젝트 충돌 시 효과음 출력 오브젝트 충돌 시 효과음 출력오늘 팀 프로젝트를 진행하며 배경음악 및 효과음 넣기 파트를 맡아 진행하기로 하였다. 저번 개인 프로젝트를 진행하며 Audio Source 기능을 구현할 때 Scene의 AudioManager와 같은 오브젝트를 생성하여 이 오브젝트가 Audio 기능을 도맡아 수행하도록 구현하는 것이 좋다는 피드백을 받았다. 따라서 이번 프로젝트에서 효과음 출력을 AudioManager 오브젝트에서 담당하기로 하였다....만 장애물 오브젝트, 점수를 제공하는 코인 오브젝트 등 너무 다양한 AudioClip이 필요했다. 일단 내가 아는 방법을 먼저 적용하기로 하였다. 각 장애물 및 코인 오브젝트에는 Player 오브젝트와의 충돌을 감지하는 메서드가 존재한다.public virtual void O.. [TIL][Unity] 인터페이스 인터페이스오늘 아침 팀 프로젝트 일간 회의에서 재휘님이 작업 피드백으로 '장애물 오브젝트 스크립트에 인터페이스를 적용하라'고 하셨다. 강의를 들어 적용법에 대해 알고 있었기에 알았다고 하였으나, 정확히 왜 인터페이스를 사용해야 하는지 이해하지 못했다. 따라서 오늘 저녁 식사 이후 시간은 온전히 인터페이스에 대해 이해하고 사용하는 이유를 공부하는데에 사용하였다. 인터페이스란?인터페이스를 왜 사용하는지 알아보기 이전에 인터페이스가 정확히 무엇인지 알 필요가 있었다.인터페이스란, 추상화를 달성하고 객체가 서로 상호작용할 수 있도록 하는 강력한 도구이다.사실 위 문장만으로 인터페이스를 정확히 이해할 수 없다. 따라서 풀어 설명하자면, 인터페이스는 상속 받는 클래스에서 구현해야 할 기능, 내용에 대한 템플릿을 제.. [TIL][Unity] 싱글톤 패턴 싱글톤 패턴Unity를 통해 게임을 개발하면 여러 스크립트로 이루어진 게임 요소들을 GameManager 스크립트를 선언하여 관리하는 경우가 많다. 이 경우 다른 스크립트에서 GameManager에 접근하기 위해 인스턴스를 생성하곤 한다.//GameManager.cs - 싱글톤 Xpublic class GameManager : MonoBehaviour{ public void InitializeGame() { Debug.Log("게임이 초기화되었습니다."); }} 위와 같이 싱글톤 패턴을 사용하지 않은 GameManager.cs가 있다고 가정하자.그리고 다른 스크립트 Example.cs에서 해당 스크립트에 접근해 InitializeGame 메서드를 실행하고자 한다면코드는 다음과.. [TIL][Unity] 오브젝트 풀링 팀 프로젝트 시작24.06.03 월요일 '3D 런닝액션 게임 제작'을 주제로 팀 프로젝트가 시작되었다. 필수 요구사항 중 내가 맡은 요구사항은 다음과 같다장애물 생성 로직 : 오브젝트 풀링을 이용하여 장애물이 지속적으로 생성되도록 하는 로직 구현맵 요소 구성 : 실제 플레이어는 움직이지 않으나 움직이는 듯한 느낌이 들도록 맵 구성점수 시스템오늘 구현한 기능은 장애물 생성 로직, 맵 요소 구성이다. 두 파트 모두 오브젝트 풀링을 이용하였다. 오브젝트 풀링오브젝트 풀링은 이미 많이 다루었던 코딩 기술이다. 하지만 제대로 이해하지 못해 다루는 데에 어려움을 겪었다. 앞으로도 많이 사용될 기술이기에 이번 기회에 확실히 이해하고 넘어가고자 하였다.위 영상은 상술한 두 요구사항을 구현한 것이다. 두 요구사항 모두 .. [WIL] Unity 3D 프로젝트 진행 후기 Unity 3D 프로젝트 진행 후기이번 주간 개인 프로젝트로 Unity 3D의 기본적인 기능들을 구현하고 하나의 게임을 구성하였다. https://github.com/twotop6357/AngryCity GitHub - twotop6357/AngryCityContribute to twotop6357/AngryCity development by creating an account on GitHub.github.com위와 같은 게임을 구성하며 느낀 점을 적어보고자 한다. 겁먹은 만큼 어렵지는 않다?사실 3D 프로젝트를 진행한다는 것이 개인적으로 큰 벽으로 다가왔다. 2D 프로젝트에 비해 신경써야 할 부분, 고려해야 할 부분은 훨씬 많았고 2D 프로젝트를 진행하며 쌓았던 지식을 온전히 활용하지 못한다는 점이 .. 이전 1 2 3 4 5 다음