분류 전체보기274 [CS : 디자인패턴] 플라이웨이트(Flyweight) 메모리와 직접적으로 연관이 있는 플라이웨이트 패턴. 팀원들과 디자인패턴 스터디를 시작하면서, 우선적으로 게임에 주로 활용되는 패턴을 찾아보았다. 그리고 현재 진행 중인 프로젝트 에 활용할만한 디자인패턴을 찾았다. 본인은 프로젝트에서 디자인과 리소스 관련 역할이 다른 팀원들에 비해 큰 편이라고 생각하였으며, 플라이웨이트를 잘 활용한다면 프로젝트의 메모리를 잘 관리할 수 있을 것이라 생각하였다. 특히, 레퍼런스게임 중 하나인 를 직접 플레이하며 가장 놀랐던 점이 다른 방치형 게임들에 비하여 발열이 거의 없다!라는 점이었다. 방치형 게임을 하다 보면 밤에 깜빡하고 켜두고 잠들 때가 종종 있는데, 다른 게임들은 폭발하는 거 아닌가 싶을 정도로 발열이 굉장히 심했던 기억이 있다. 하지만 프로즌시티는 살짝 따뜻한 .. 2023. 4. 15. [CS : 디자인패턴] 싱글톤(Singleton) 디자인패턴에서 생성패턴의 하나인 싱글톤. 수업에서 계속 다뤄 구조와 의미는 알지만, 스스로 싱글톤이 뭐야?라고 했을 때 쉽게 대답하기 어려웠다. 다른 디자인패턴을 공부하기 전에 개념적으로 확실히 하고 싶어 다시 공부하며 복습하였다. 싱글톤(Singleton) 한 클래스가 한 개의 인스턴스만 갖도록 제한. 프로그램 시작부터 종료까지 동일한 인스턴스로 반환되어 전역 범위에서 접근 가능하게 하는 패턴이다. 중앙에서 관리 혹은 정보 공유가 필요할 때 주로 쓰인다. 장점 하나의 인스턴스를 공유하며 사용하기 때문에 생성 비용이 줄어듦 단점 의존성이 높아짐 - 독립적인 테스트가 어려워짐 의존성 주입 결합을 느슨하게 만들어줌 장점 모듈들을 쉽게 교체 가능한 구조가 되어 테스트가 쉬워짐 의존성 방향이 일관됨 쉽게 추론 .. 2023. 4. 13. [Unity 인공지능 / ML Agent] Get Potion (추가중) 캐릭터(agent)가 힐링포션만을 먹도록 학습시키는 예제. 1. 환경 배치 2. 환경 세팅 1) 이전의 포션이 있다면 모두 삭제 2) 캐릭터를 (0, 0, 0)으로 초기화 3) 새로운 포션들을 랜덤으로 배치(치유 포션 + 독 포션 3세트로 설정, 이전에 배운 Apple Catch 예제의 랜덤 생성을 이용) 리스트를 이용하여 포션을 저장, 먹었다면 삭제, 초기화하면 모두 삭제 PotionArea using System.Collections; using System.Collections.Generic; using UnityEngine; using TMPro; public class PotionArea : MonoBehaviour { public CharacterAgent characterAgent; publ.. 2023. 4. 11. GooglePlayGamesPlugin-0.11.01 failed error 해결 GooglePlayGamesPlugin-0.11.01 1. 프로젝트\Assets\GooglePlayGames\com.google.play.games\Editor 의 2. GooglePlayGamesPluginDependencies.xml 파일을 열어 3. repository 내부를 Assets/GooglePlayGames/com.google.play.games/Editor/m2repository 로 바꿔준다. https://3dmpengines.tistory.com/2184 com.google.games:gpgs-plugin-support:0.11.01 --> com.google.games:gpgs-plugin-support:+ com.google.games:gpgs-plugin-support:0.11... 2023. 4. 11. [R&D] Ticket charge 앞의 Energy Slider에서 오프라인에서 접속하였을 경우 추가, ticket에 맞게 변경 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using System; public class UIEnergy : MonoBehaviour { public TMP_Text txtTime; public TMP_Text txtEnergy; public Button btnUseEnergy; private int energy = 5; private int maxEnergy = 5; private int energyTime = 3; private bool charg.. 2023. 4. 11. [R&D] Energy bar Slider 기기의 시간을 가져오는 DateTime과 DateTime간의 간격을 저장하는 TimeSpan using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using TMPro; using System; public class UIEnergy : MonoBehaviour { public Slider energySlider; public TMP_Text txtTime; public TMP_Text txtEnergy; public Button btnUseEnergy; private int energy = 5; private int maxEnergy = 5; private int energyT.. 2023. 4. 11. 이전 1 ··· 27 28 29 30 31 32 33 ··· 46 다음