분류 전체보기 98

유니티 팀 프로젝트 #4 3D 서바이벌 프로젝트 (완)

오늘은 쉬어가는 느낌으로다가그동안 팀 프로젝트를 진행하면서 겪은 내용을 정리 해 보고자 합니다. 사실 글 상으로만 이번이 네 번째고,더 많은 프로젝트를 하긴 했었습니다만.. 평소 3D는 시도를 잘 안 해봐서남겨야겠다는 생각으로 올렸습니다.  팀 프로젝트를 하면서 맡은 부분 - 맵 만들기 2024.11.01 - [유니티/3D] - 유니티 3D - 터레인(Terrian)에 대해 알아보자 - 엑셀 데이터 가져오기 2024.09.11 - [분류 전체보기] - 유니티 - '엑셀'과 연동 해보자#1 Excel-Importer 사용하기 건축 시스템  - 아래 참고 자료  확실히 글로 정리해 놓으니 필요할 때 찾아보며 도움이 많이 되어서 좋았습니다.(전에 했음에도 기억나지 않는 부분도 꽤 있어서 헤맸지만 말이죠 ㅋ;;..

미니 프로젝트 2024.11.06

디자인 패턴에 대해 알아보자#5 옵저버 패턴 (Oberserver)

지난 시간에 이어 오늘은 옵저버 패턴에 대해 알아보고자 합니다. 2024.10.31 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#4 - 팩토리 패턴 (Factory Pattern) (feat : 팩토리 메소드, 추상 팩토리 패턴) 옵저버 패턴이란?관찰자가 관찰 대상이 되는 객체의 상태 변화에 따라 대응하는 패턴입니다.옵저버라는 뜻 그대로 아주 직관적이죠? 예시  using UnityEngine;using System.Collections.Generic;using UnityEngine.UI;// 옵저버 인터페이스public interface IHealthObserver{ void OnHealthChanged(float currentHealth, float maxHealth);}// 플레이어 체..

디자인 패턴 2024.11.05

유니티 - lerp와 slerp 에 대해 알아보자(+ smoothDamp)

오늘은 lerp와 slerp에 대해 알아보고자 합니다. lerp와 slerp 모두 부드러운 움직임을 표현하기 위해 사용한다 정도만 알고 있었는데,실습하면서 이와 관련한 문제가 나와 이참에 한번 정리해 봤습니다. 선형 보간(lerp) : 두 지점을 선형으로 연결해 두 지점 사이에 위칫값을 구하는 방법 (직선거리에 따라 선형적(비례적) 계산) 유니티에서 제공하는 선형 보간 함수는 Vector3.Lerp, Mathf.Lerp, Color.Lerp, Quaternion.Lerp 등 다양한 형태로 제공됩니다.  // Unity에서의 Lerp 사용 예시transform.position = Vector3.Lerp(startPos, endPos, time);  https://docs.unity3d.com/ScriptR..

카테고리 없음 2024.11.04

유니티 3D - 터레인(Terrian)에 대해 알아보자

오늘은 터레인에 대해 알아보고자 합니다. 유니티에서 맵을 만들기 위해  2D에 타일맵이 있었다면3D에는 터레인 기능이 있습니다. 3D 프로젝트 중 맵 디자인을 시도해 보면서 터레인의 기능들을 사용해 봤고 정리해 봤습니다. 터레인 추가하기우클릭 - 3D Object - Terrain을 통해 생성할 수 있습니다. 그러면 Terrain이라는 오브젝트가 생성되고,  Inspector 창에서 Terrain과 Terrain Collider가 붙어 있는 걸 확인 할 수 있습니다. 각 기능을 소개하겠습니다. 1. Create Neighbor Terrians  생성한 터레인 주위로 새로운 터레인을 생성해 주는 기능입니다.보시면 Scene 창에서 초록색 네모로 생성 가능 지역을 보여주는 걸 확인 할 수 있습니다.   2...

유니티/3D 2024.11.01

디자인 패턴에 대해 알아보자#4 - 팩토리 패턴 (Factory Pattern) (feat : 팩토리 메소드, 추상 팩토리 패턴)

오늘은 지난 시간에 이어 팩토리 패턴(+ 팩토리 메소드, 추상 팩토리)에 대해 알아볼까 합니다.  2024.10.29 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#3 - 전략 패턴 (Strategy)  팩토리 패턴이란 ? 객체 생성을 위한 패턴입니다.팩토리라는 이름처럼 공장에서 상품을 찍어 내듯이객체 생성을 전담하는 클래스를 통해 객체를 생성하는 패턴입니다. 이렇게 함으로써 객체 생성 로직을 캡슐화하고, 객체 생성과 사용을 분리할 수 있습니다. 예시 // 추상 제품 인터페이스public interface ICharacter{ void Attack(); void Move();}// 구체적인 제품 클래스들public class Warrior : ICharacter{ public voi..

디자인 패턴 2024.10.31

유니티 - Input System에 대해 알아보자#3(Input System으로 UI 다루기 및 Path must be located in Assets/ folder (got: ' 주소 ' )UnityEngine.GUIUtility:ProcessEvent (int,intptr,bool&) 에러 해결법)

오늘은 제목처럼 Input System으로 UI를 제어하는 방법과에러 해결법에 대해 작성하고자 합니다.  일단 이 에러는 Player Input 컴포넌트에서 Create Actions를 누르면 나오는 에러였습니다.  에러를 겪은 지는 꽤 되었었는데 그동안은 구글링해 봐도 방법이 안 나오고,직접 인풋 액션을 만들어 사용하는 데는 크게 문제가 없어서 넘어갔었습니다. 남들 딸깍 한 번이면 해결하는 걸 매번 일일이 만들어야 한다는 번거로움+ 처음엔 넣어야 할 내용이 뭔지 몰라서 짜증 났다 정도?  에러의 이유는 알고 있었습니다.Input System에서 절대경로를 사용하려고 해서 문제가 발생하는 거였습니다. 이래저래 방치하고 있다가 필요에 의해(UI와 같이 설명한 데는 이유가 있...)시도, 해결한 내용을 공유..

유니티/공통 2024.10.30

디자인 패턴에 대해 알아보자#3 - 전략 패턴 (Strategy)

오늘은 지난 시간에 이어 전략 패턴에 대해 알아볼까 합니다. 2024.10.08 - [디자인 패턴] - 디자인 패턴에 대해 알아보자#2 싱글톤 패턴(feat. 유니티) 전략 패턴이란? 간단하게 정리하자면비슷한 동작을 하는 여러 알고리즘을 만들어 두고 ,필요할 때마다 교체할 수 있도록 만든 패턴입니다. 이렇게 함으로써 후에 새로운 전략을 추가하기도 쉽고코드의 재사용성을 높일 수 있습니다. (동적으로 실행될 수 있는 부분들을 캡슐화) 예시  // 전략 인터페이스 정의 : Movepublic interface IMovementStrategy{ void Move(Transform transform);}public class Character : MonoBehaviour{ private IMovemen..

디자인 패턴 2024.10.29

유니티 - Batching에 대해 알아보자.(feat. Draw call, Set Pass Call, 아틀라스)

오늘은 Batching에 대해 알아보고자 합니다.요즘 계속 유니티 관련해서 찾아봐서 그런가유튜브 알고리즘이 띄워주더군요. ㅋ 아틀라스를 사용하면서 몇 번 스치듯 들어보긴 했는데정확하게 몰라 한번 정리해 봤습니다. Batching?Draw Call과 여러 그래픽 요소들을 하나로 묶어 GPU에 전달하는 최적화 기법 Draw Call ? CPU는 게임 오브젝트 데이터를 읽고 처리하는 역할,GPU는 받은 데이터를 기반으로 실제 컨텐츠를 그리는 역할을 수행하는데, 이때  CPU가 GPU에게 3D 오브젝트를 그리라고 지시하는 명령을 Draw Call이라고 합니다. Set Pass Call ? Draw Call을 통해 따라오는 데이터를 커멘드 버퍼라고 하는데, 그 중 매테리얼, 쉐이더 등 그래픽 관련 데이터를 묶어놓..

유니티/공통 2024.10.25

유니티 3D - 머티리얼(Material) 분홍색 해결 방법 (feat : URP )

3D 프로젝트를 연습하기 위해 유니티 스토어에서 무료 에셋을 구했다.  Import를 하니 예시와는 다르게 머테리얼들이 분홍색으로 떠서 해결 방법을 찾았고 그 과정을 공유하고자 한다.일단 찾아보니 변하는 이유도,해결 방법도 다 가지각색이었다. 누구는 그냥 셰이더 들어가서아무 속성값 숫자 하나 바꾸니까 해결되었다고 하는 사람도 있던데;; 일단 내가 시도했던 방법을 소개한다.(가장 많이 나오고 대부분 이걸로 해결되는 듯하다.)(현재 사용하는 환경은 유니티 2022 버전 기준 URP다. / 더 높은 버전도 아마 될 것 같긴 하다.) Edit - Project Setting - Graphics로 가면 어떤 환경인지 알 수 있다.None이라면 Builtin이라고.   해결 방법 수동 지정 방식  분홍색 머테리얼들..

유니티/3D 2024.10.24