Unity 11

[유니티/UNITY] VR · 기업협약 팀 프로젝트 개발일지 겸 후기

UNITY VR · 기업협약 팀 프로젝트뛰뛰빵빵 VR (D2B2) 개발일지이동 시스템 · 신호등 판정 · 미션 NPC · 타임라인 안전가이드 · 기획 오류 수정 경험8인팀 · 9주 Unity 2021.3 + XRI 2.6.4 Photon PUN2 Firebase DOTween · UniTask목차이동 시스템 — 3차에 걸친 구조 개선미션 시스템 — 하드코딩 제거 리팩토링미션 체크 UI · 클리어 UI신호등 & 횡단보도 — 복합 조건 판정GuideNPC & 타임라인 안전가이드기획 오류 수정 경험 1이동 시스템 — 3차에 걸친 구조 개선 VR 교육 콘텐츠에서 이동 시스템을 어떻게 설계할지가 초반의 가장 큰 고민이었습니다.단순 조이스틱 이동은 VR 멀미를 유발하고, 몰입감을 해쳤습니다.실제로 팔을 흔드는 동작..

Unity/프로젝트 2026.05.15

[유니티/Unity] 몬스터헌터 모작 - 네트워크 팀 프로젝트

https://youtu.be/VCp4IfyKoJc?si=i1Sf4ycL-dlYrjyO유니티 네트워크 팀 포트폴리오로 몬스터헌터를 모작해 봤습니다. 개발 목적이번 프로젝트에서는 몬스터헌터 스타일의 게임에서 사용할 수 있는 인벤토리 시스템, UI시스템, 집회소 시스템, 사냥 시스템 , 몬스터 시스템을 구현하는 것이 목표였습니다. 제가 이 프로젝트에서 맡은 역할은 팀장 + UI 시스템 + 인벤토리 시스템 + 멀티플레이 아이템 구현 입니다. 이렇게 첫 목표를 설정했었고, 아슬아슬하게 처음 목표로 잡은 기능은 다 만들어서 다행이였습니다. 왼쪽은 0주차 즉 프로젝트 시작전에 팀 회의로 정한 부분이고, 오른쪽은 주차 시작마다 회의후 정한 부분입니다. 이런식으로 노션에 계획을 정하고 주차가 시작될때마다 목표를 정..

Unity/프로젝트 2025.04.07

애니메이터와 네비메쉬 속성들

모델을 하이어라키에 배치하면 애니메이터가 보입니다Controller: 애니메이션 컨트롤러 넣는 곳Apply Root Motion: 애니메이션 클립에 저장된 위치 및 회전값 적용 여부Update: 애니메이션 갱신 주기Normal: 업데이트 주기 영향 받고, Time scale의 영향을 받음Animate Physics: FixedUpdate 영향을 받고, Rigidbody 상호작용할 때 사용UnscaledTime: Update 주기 영향 받고, Time scale 영향 안받음Culling ModeAlways Animate: 카메라가 비추고 있지 않아도 애니메이션 재생Cull Update: 랜더링 하지 않을 때는 정지Cull Completely: 랜더링 되지 않으면 모든거 싹 다 멈춤 애니메이션 리타게팅은 한..

Unity/학습 2025.02.07

유니티에서 마우스 휠 사용법

이것이 내가 유니티에서 사용해본 방법이다.public class FollowCam : MonoBehaviour{ public Transform targetTr;//따라갈 타겟 Transform camTr;//카메라 트랜스폼 //따라갈 대상으로부터 떨어질 거리 [Range(2.0f, 20.0f)] //public float distance = 10.0f; public float distance = 3.5f; //Y축 높이 바꿀것 [Range(0f, 10.0f)] //public float height = 2.0f; public float height = 3.17f; //X축 높이 바꿀것 [Range(0f, 10.0f)] //public ..

Unity/학습 2025.02.06

[유니티/Unity] 포켓몬 로얄 - 팀 프로젝트

Card 클래스 플레이 시 나올 유닛 덱 카드 정보와 이미지를 가지고 있습니다.아래 내부는 생성자와 프로퍼티만 가지고 있고, 모든 유닛들의 카드 정보는 이 클래스를 공유하고 있습니다.ViewController메인 씬에서 버튼 클릭 시 작동할 코드들을 모아둔 곳입니다. 그래서 버튼들의 게임오브젝트를 public으로 열어둔 뒤 하이어라키 창에서 연결하여 사용했습니다.GetComponent를 최대한 사용하지 않고 만들고 싶었기 때문입니다. 그리고 생각지 못하게 덱 이미지에 카드를 장착·제거할 경우 예외처리를 위한 정보 탐색이 필요해져서, 진행하다 보니 코드가 조금 늘어났습니다.깔끔하게 바꾸기엔 현재 시간이 부족해 다음으로 미뤘습니다. 나중에는 해당 카드들의 전체 관리 클래스가 있으니, 거기서 메서드 하나를 만..

Unity/프로젝트 2025.01.24

[팀 포폴] 클래시로얄 라이크(포켓몬 로얄) -잡담

지금 팀포폴을 제작중인데, 많이 힘들다... 초반엔 초기 프로젝트 설계를 맡아서 재밌게 이것저것 섞으면서 정했고, 이제 제작을 하는중인데.. 설계를 설명했을땐 금방 끝날거같은 분위기 였으나, 막상 해보니 팀원들 전부가 유니티를 처음다뤄봐서 이것저것 기능별로 해메고있다 ㅋㅋ.. 덕분에 많이 배우기는 하는것 같은데 힘들다! 하나하나 해결할떄마다 재미는 있는데 힘들긴하다. 암튼 최초의 문제는 MonoBehaviour상속을 받으면 new를 할수없다는게 첫번쨰 문제였고,팀원이 GetComponent 해놓고 sprite를 불러와서 난리나고 아주 좌충우돌 코딩기를 겪고있다.. ㅎㅎ그래도 차근차근 해결해 나아가고 있고,지금 내 문제는 UI를 하는 과정에서 Canvas의 좌표가 그 안에있는 UI 렉트 포지션들의 좌표값에..

Unity/프로젝트 2025.01.16

유니티 오늘 배운내용

# Instantiate- 2D에선 잘 버팀 3D에선 좀 걸림- 게임에선 로딩을 사용해서 한번에 생성한뒤 재사용한다- Transform,RIgidbody- 값초기화도 연산이들어감.# Destroy- 쓰지 않는 메모리가 되어서 해제가 되어야함.- 가비지 콜렉터가 돌면서 수거해 갈거임.- 그런데 가비지 콜렉터가 언제 작동하는지 알아야 함.- 네이티브C#, .NetFramework에서의 가비지 콜렉터는 '주기적으로' 수행됨- Generation 방식- 유니티의 가비지 콜렉터 : '메모리가 부족할 때 작동'- Mark and Sweep , - 메모리 사용량이 많아지면 , 유니티는 강제로 GC를 돌림- 이떄 GC스파이크(갑자기 메모리 사용량 높아지는것) 렉이 걸림,프레임 드랍걸림둘다 덜 사용하면 가비지 콜렉터가 ..

Unity/학습 2025.01.11

유니티)싱글톤 패턴

디자인 패턴중에서 싱글톤 패턴이란게 있다. 이 클래스는 생성자가 여러차례 호출 되더라도 실제로 생성되는 객체는 하나이고 , 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. => 본인객체 호출될때 값이 주소에 null이 아닌경우 return this 해도 되는듯? 하다. 싱글톤(Singleton) 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하는 디자인 패턴이다. 이 패턴은 인스턴스가 프로그램 전체에서 동일한 자원을 공유하도록 하는 데 유용하다. 주로 설정 파일, 프린터 스풀러, 키보드 리더와 같은 리소스를 전역적으로 관리할 때 사용된다.   아래는 보편적인 위키에서 긁어온 유니티 싱글턴의 기본세팅이다.class Singleton : MonoBehaviour{ ..

Unity/학습 2025.01.04

유니티의 Random과 C# Random의 차이

namespace 키워드는 관련 개체 집합을 포함하는 범위를 선언하는 데 사용됩니다. 네임스페이스를 사용하여 코드 요소를 구성하고 전역적으로 고유한 형식을 만들 수 있습니다. 위는 네임스페이스에 대한 ms사의 설명이다. 그리고 이 네임스페이스에 대한 설명을 왜 가져왔냐 하면 이 차이점에 대해 말하려면 대충이라도 알고 넘어가야 했기 때문이다. 두 랜덤의 차이점이 각각 유니티와 시스템의 네임스페이스 소속이기 때문이다. 그렇기에 이름만 같을뿐 다른 객체 인것이다. 그래서 그런지 난수 생성방식도 다르다. 유니티 Random: Random.value를 사용하여 0과 1 사이의 float 값, Random.Range(min, max)를 사용하여 특정 범위 내의 int 또는 float 값을 생성한다.C# Random..

Unity/학습 2025.01.02

유니티 스크립트란?

스크립트(Script) 란?유니티에서 스크립트는 게임에서 오브젝트의 동작들을 기술해놓은 설계도의 역할한다.게임은 기본적으로 유저와 상호작용 하게 되는데, 이러한 동작들도 스크립트를 이용하여 구현할 수 있다. # 파일명을 변경할때 주의!유니티에서 스크립트 파일을 생성할때는 이름을 먼저 정하고 난 다음, 스크립트가 생성이 된다. 그런데, 이름을 먼저 정하지 않고 스크립트를 만들고(기본 이름인 NewBehaviourScript으로 생성을 하고 나서) 이름을 따로 변경하게 될 경우 코드내에서 선언된 이름과 스크립트 파일의 이름이 맞지 않아서 오류가 발생하게 된다. ( 스크립트를 생성할때 이름을 변경하는 경우엔 유니티가 자동으로 클래스 이름을 맞추어서 생성하기 때문에 오류가 발생하지 않는다. ) 이는 C# 이 클..

Unity/학습 2025.01.02