본문 바로가기

unity17

[Unity, C#] Singleton 싱글톤 혼자야? Singleton프로그램(게임) 전체에서 객체가 하나만 생성되는 것을 보장하고,그 프로그램의 어디에서든지 접근할 수 있도록 만드는 디자인 패턴 중 하나입니다.가장 간단한 예시로, GameManager, SoundManager, RenderingManager 등... 이 있습니다. (Design-Pattern 관련해서는 아래에 정리해 두었어용)https://bulletprooves.tistory.com/46 [OOP] Design Patterns ( GoF )Object Oriented 프로그래밍에서 협업을 위해 설계를 할때,내가 작성한 코드, 다른 분께서 작성한 코드를 전달해줄 때 생기는 어려움을 극복하기 위해디자인 패턴이라는 일종의 의사소통 방법을 사bulletprooves.tistory.c.. 2025. 9. 7.
[CS] DI Dependency Injection 디펜던시 인젝션, 우리말로 '의존성 주입'인데저는 어감 때문에 처음엔 조금 낯설게 느껴졌습니다. DI; Dependency InjectionDependency Injection(의존성 주입)을 프로그래밍 차원에서는클래스가 필요한 객체(의존성)를 스스로 생성하지 않고, 외부에서 주입받는 방식을 말합니다. 먼저 Dependency(의존성)는, "A depends on B." ("A가 B에 의존한다.") 관계 입니다.그렇기 때문에, 의존대상인 B가 변한다면 → A에게도 영향이 갈 것입니다.예를 들어 자동차와 엔진으로 비유해서 설명드리자면,Car는 Engine 없이 작동할 수 없으니까, Car는 Engine에 의존하는 것을 Dependency (의존성)이라고 합니다.원래는 Car가 스스로 직접 Engine 객.. 2025. 6. 23.
[Unity] Asset Bundle & Addressables Addressables 를 알아보기 위해선 Asset Bundle 에 대해 간단히 알아보면 좋겠습니다.개발자가 Asset 을 서버 묶어 올려두고, 플레이어는 런타임에 이를 받아와 실행할 수 있습니다.(유니티 코리아 개발자님의 영상을 참고했습니다. https://www.youtube.com/watch?v=3f2XjEGDZ2s ) 자세한 건 아래를 참고해주시길 바랍니다.https://unity.com/kr/blog/engine-platform/addressables-planning-and-best-practices Addressables: 계획 및 베스트 프랙티스이 블로그 게시글에서는 유니티 시니어 테크니컬 프로덕트 매니저 제프 리센미가 프로젝트에서 Addressables 시스템을 최대한 활용하기 위해 개발.. 2025. 6. 20.
[Unity] Addressable #1 (Local) Asset Bundle / Addressable 을 이용하면, 게임 로딩할 때 추가 파일 다운로드를 구현할 수 있습니다.https://www.youtube.com/watch?v=Z84GCeod_BM 더블엘님의 Addressable 영상을 참고했습니다. Addressable System overviewAddressable 은 Asset 들을 효율적으로 관리하기 위한 확장된 시스템입니다. Set UpAddressables 셋업 부터 해보겠습니다. 먼저 Package Manager 에 들어가서 Addressable 패키지를 설치해 줍니다. 그 다음, Window > Asset Management > Addressable > Groups 를 눌러, Addressablees Groups 창을 띄웁니다.Profi.. 2025. 6. 19.
[캡스톤] 캐릭터 기본 디자인 Notion에 기록한 제 캡스톤 개발 일지를 옮겨왔습니다. 캐릭터 디자인초기멤버 위 4명 (왼쪽 위부터 전사 Fern, 검사 bonnie, 소년상어 carni & herb, 성녀 arwen)캐릭터의 다양성 : 배틀필드는 행 5칸 * 열 10칸의 고정 필드이기 때문에캐릭터의 개성 : 일단 개성이 있어야 함 몸 파츠는 사진과 같이 구성하였고, 하이러키를 잡았습니다.파츠 별로 부위를 나눠, (빈)부모 오브젝트 1개와 자식 오브젝트 여러개로 구성각 파츠별로 무게와 뼈를 할당, SpriteEditor 확인 현업에 계신 분들께서는 *Spine 2D 를 사용해 작업을 하십니다. (전 Unity 의 Mecanim 을 사용했어용) 캐릭터마다 고유 스토리가 있는데, 차마 보여드릴 수는 없습니다. ( l|l⚆ᗝ⚆) 그럼 .. 2025. 6. 2.
[Unity] please move the project somewhere readable and writable Unity 실행 시, " please move the project somewhere readable and writable" 경고문이 뜬다면, 프로젝트 폴더에 읽기/쓰기 권한이 없거나, 비정상적인 위치(ex, 외부 드라이브, 시스템 보호 폴더 등)에 프로젝트가 있을 때 발생하는 문제입니다. 해결 방법그냥 관리자 권한으로 실행 하시면 됩니다. 그럼 좋은 개발하는 하루 되세요~ ( ˶ᵔᵕᵔ˶و)و ” 참고 1 : https://discussions.unity.com/t/please-move-the-project-folder-somewhere-readable-and-writable-is-the-message-i-get-each-time-i-try-to-use-unity-5-6/187634참고 2 : ht.. 2025. 6. 2.
[Unity] Post Processing Stack v2 와 URP 동시 사용 문제 해결 Post Processing Stack v2 와 URP, 이걸 두개 동시에 사용하거나,Post Processing Stack v2 쓰다가 URP 로 갈아타다 생기는 문제입니다. 지금 Post Processing Stack v2 가 안되는 거 잖아. Unity에는 Post Processing 이 2가지 있음.하나는 URP Built-in(내장)된 거랑, 또 하나는 Post Processing Stack v2.내가 원래 쓰던게 Post Processing Stack v2 였는데, 나중에 URP를 추가하려고 해서 생긴 거야.간단하게 URP 내장 된 걸로 하나하나 바꿔서 쓰면 됨. Unity에서는 다음 두 가지가 서로 다르고 동시에 쓰면 충돌 나거나 안 먹히는 경우가 많습니다. Post Processing St.. 2025. 6. 2.
[Unity] Barracuda Tensorflow 모델을 onnx 로 변환 캡스톤 디자인 때, 이것 때문에 1주일을 고전하며 힘들었던 기억이납니다.번뜩 떠올라 과거의 제가 Notion에다 정리한 내용을 갖고왔습니다. TF2ONNXTensorFlow 모델을 ONNX 모델로 변환하기 위해선, tf2onnx (TensorFlow to ONNX에용) 라이브러리가 필요합니다.가장 먼저 Teachable Machine 에서 제가 모은 데이터로 학습시킨 모델을 다운 받고, 모델을 tf2onnx 에서 컨버트 시킨다. 그 다음 유니티에 넣고 ‘유니티-바라쿠다’로 조지고, 내게 필요한대로 코딩하면 끝-과거의 동근- 1) 데이터 Crawling 및 학습필요한 데이터를 크롤링 하여 모아둡니다. (ML_feeds)구글의 teachable machine 로 학습시킨 후, 잘 되는지 확인해봅니다.학습된 .. 2025. 6. 2.
[팬게임] 트릭컬 팬게임 3D 버터 볼따구 > 25.05.29 : halfway, 3D 모델링 및 볼따구 당기기 기능 및 인트로까지, 절반 정도 완성 트릭컬 리바이브 팬게임을 개발 중입니다. 아래는 유튜브 링크입니다.https://youtu.be/t5AvvwIkdH0 다 완성하게 되면, 플레이 가능한 링크를 만들어 두겠습니다!다들 좋은 하루 되세요! ⌯>ᴗ•⌯ಣ 2025. 5. 29.
[프로젝트] 첨으로 만들었던 모바일 게임 Astronaut : Platformerhttps://www.youtube.com/watch?v=8Xc3Q5ubBh0 2019년도 여름, Window 그림판으로 모든 Sprites를 그려보자라는 정신나간 생각에서 시작한 게임입니다.아주 먼 옛날, Metroid 라는 게임을 (어렸을 때라 무서워서 벌벌떨며 했지만...) 재밌게 했던 기억이 떠올라,우주선을 배경으로 기괴한 감염체들과 싸우는 내용으로 만들었습니다. 아래 링크에서도 확인하실 수 있습니다.https://bulletprooves.github.io/myMiniHomeP/html/project_Astro.html 동근_Astro시스템과 그래픽 리소스를 최소화 하기 위해 그림판으로 모든 Sprite를 단 두가지 색상만 사용하며, 64*64, 32*32 .. 2025. 5. 26.
[Unity] Getting started with UniRX ( Observer Pattern ) UniRxRX; Reactive Extensions로, Reactive Extensions for Unity 라이브러리입니다.RX는 언어가 아닌 일종의 paradigm으로, 언어에 묶여있지 않아 C#, C++, Java, PHP, Lua 등에서도 사용 가능합니다.RxJS, RxJava, RxPy, RxLua, 리액티브코코아 등등...(Reactive 프로그래밍은 Asynchronous data stream으로, 이에 관해서는 다른 포스트에서 다루겠습니다.)UniRx의 주요 개념으로 Observable, Stream → Operator, Subscribe 가 있으며,Observable, Stream을 사용한 비동기의 개념으로, Overvation Pattern의 디자인 패턴을 따릅니다.(2017년도, 제가.. 2025. 5. 22.
[Graphics] Custom Shader 셰이더 가상의 광원 Normalize 아래 포스트는 고민하고 시도해본 방법들을 정리하였으며,https://bulletprooves.tistory.com/34 [Unity] Custom Shader 셰이더 에디터 / 빌드 다른 결과해당 포스트는 고민하고 시도해본 방법들을 정리하였으며,해결하지는 못했지만, 나름 다른 방법으로 우회(?)하여 겉보기엔 문제 없이 해결한 방법은 다음 포스트에서 다뤘습니다.https://bulletproovbulletprooves.tistory.com 해당 포스에서는 해결하지는 못했지만, 나름 다른 방법으로 우회(?)하여 겉보기엔 문제 없도록 만든 과정을 정리했습니다. 문제 : Build 하고난 뒤, 음영이 반영 안 됨빌드하고 나면, 전부 어두운 팩터만 곱해 밝은 부분과 중간 부분 음영이 반영 되지 않습니다.원인은... 2025. 5. 19.
[Unity] Custom Shader 셰이더 에디터 / 빌드 다른 결과 해당 포스트는 고민하고 시도해본 방법들을 정리하였으며,해결하지는 못했지만, 나름 다른 방법으로 우회(?)하여 겉보기엔 문제 없이 해결한 방법은 다음 포스트에서 다뤘습니다.https://bulletprooves.tistory.com/35 [Unity] Custom Shader 셰이더 에디터 / 빌드 다른 결과해당 포스트는 고민하고 시도해본 방법들을 정리하였으며,해결하지는 못했지만, 나름 다른 방법으로 우회(?)하여 겉보기엔 문제 없이 해결한 방법은 광원 (Directional Light)로 부터의 방향과 표면bulletprooves.tistory.com Custom Shader 셰이더 에디터 / 빌드 다른 결과 커스텀 쉐이더를 사용 중, Shader가 Editor 와 Build 에서 반영 결과가 다른 .. 2025. 5. 18.
[Unity] Awake OnEnable Start 위 이미지는 Order of execution for event functions (이벤트 메서드 순서)의 플로우차트 일부분으로,이번 포스트는 Initialization 파트를 다루고 있습니다. Awake OnEnable StartMonoBehaviour에서 상속받아 사용할 수 있는 클래스 메서드로,인스턴스의 초기화와 시작시 행동을 관리할 때 사용합니다순서는 Awake → OnEnable → Start 입니다. Awake()새 오브젝의 인스턴스가 생성될 때, 첫빠따로 호출되는 메서드입니다.항상 Start 함수 이전에 호출 됩니다.만약 GameObject가 시작했는데 비활성화 상태일 경우엔, 활성화될 때까지 Awake()는 호출되지 않습니다. 게임이 시작될 때 호출하므로, 여러 객체에서의 Awake().. 2025. 5. 17.
[Unity] Update FixedUpdate LateUpdate 위 이미지는 Order of execution for event functions (이벤트 메서드 순서)의 플로우차트 일부분으로,해당 내용은 다른 포스트에서 다루도록 하고, 이번 포스트에선 게임 로직의 중추가 되는 파트를 정리하였습니다. Update, FixedUpdate, LateUpdateUpdate, FixedUpdate, LateUpdate 는 MonoBehaviour 클래스의 이벤트 메서드로써,상황이나, 목적에 따라 어떤 메서드를 사용할 것이냐 구분할 수 있습니다. 호출 시점설명Update()every Frame입력, 일반적인 로직 (transform) 이나 애니메이션 호출 등FixedUpdate()fixed Time물리 기반 (Rigidbody, Collider, Physics) 등LateU.. 2025. 5. 16.
[Unity] InputSystem 인풋시스템 유니티 입력 시스템Unity는 구버전(InputManager)과 신버전(InputSystem Package)의 두 가지 입력 시스템이 있습니다. InputManager (구버전)먼저 구버전은 [Edit > Project Settings > Input Manager] 에서 확인하실 수 있으며,'W', 'LeftShift', 스페이스바 등의 물리적 키보드의 키, 전용 게임패드 리모컨의 버튼,그리고 스크립트에서 [-1 or 1]의 값을 반환해 코딩할 수 있는 Virtual Axis.Input.GetKey(KeyCode.W);float horizontalInput = Input.GetAxis("Horizontal"); 위 같은 행동들을 정의하여 InputManager라 할 수 있습니다. InputSystem .. 2025. 4. 25.
[Unity] 터치, 입력(Input) 시스템 정리 터치 및 입력OnMouse와 Input, 인터페이스 등...Unity에서 자주 사용되는 입력 처리 방법들을 정리했습니다.마땅한 순서 기준 없이 생각의 흐름대로 정리한 거라 양해부탁드립니다. OnMouse 계열 메서드Collider있는 오브젝트나, GUIElement에서 작동합니다.Raycast 기반이며 (Physics 필요 없음) PC, 모바일 모두 사용 가능합니다.private void OnMouseDown() { // 마우스 클릭 시작}private void OnMouseDrag() { // 클릭한 상태에서 드래그 중}private void OnMouseUp() { // 마우스 버튼에서 손 뗐을 때} Raycast + Input 조합3D 클릭 감지 방식으로, 위의 OnMouse가 한께.. 2025. 4. 25.