본문 바로가기

unity5

[게임 디자인 패턴] 오브젝트 풀 패턴 // 유니티로 배우는 게임 디자인 패턴 제 2판 (데이비드 바론, 구진수) 을 기준으로 작성되었습니다.참고자료 : https://docs.unity3d.com/kr/2022.1/ScriptReference/Pool.ObjectPool_1.html 개요  많은 게임들의 화면 속에서는 수많은 객체들이 각자 행동하고, 상호작용하는 모습들을 볼 수가 있다. 투사체가 이리저리 날아다니거나, 다양한 파티클 효과가 터지고, 갑자기 수많은 적의 무리가 덮칠 수도 있다.    다양한 객체를 효과적으로 다루기 위해서는 오브젝트 풀 패턴이 사용된다.    오브젝트 풀 패턴은 자주 사용되는 요소를 위해 일부 메모리를 예약한다. 최근 사라진 객체를 메모리에서 없애지 않고, 다시 사용할 수 있도록 오브젝트 풀에 추가한다. 이를 .. 2024. 9. 10.
[ML-Agents] ML-Agents 구성 요소 알아보기 - Agent Script // 파이토치와 유니티 ML-Agents로 배우는 강화학습 책에 대한 공부 요약 글입니다. 개요  ML-agents의 구성 요소를 간단하게 살펴보고, 그 중 Agent 스크립트의 구성요소에 대해 알아본다.       Agent Script - Max Step  Max Step은 한 에피소드의 최대 스텝 수를 결정하는 값이다. Max Step이 5000으로 설정되어 있으면, 5000스텝이 지나야 한 에피소드가 종료된다. 에피소드 (Episode) : 에이전트가 어떠한 환경 내에서 행동을 시작하고, 특정한 조건을 만족하거나 목표에 도달하여 행동이 끝날 때 까지의 여정 하나를 하나의 에피소드라고 부른다.   Agent Script 의 주요 함수 - Initialize public override void.. 2024. 8. 14.
[ML-Agents] ML-Agents 구성 요소 알아보기 - Behavior Parameters // 파이토치와 유니티 ML-Agents로 배우는 강화학습 책에 대한 공부 요약 글입니다. 개요  ML-agents의 구성 요소를 간단하게 살펴보고, 그 중 Behavior Parameter 컴포넌트의 구성요소에 대해 알아본다.      ML-Agents 의 구성 요소  ML-Agents 예제 3D Ball의 3DBall의 Agent를 클릭하면, 인스펙터에서 다음과 같은 컴포넌트들을 찾아볼수 있다.Behavior ParametersBall 3D AgentDecision RequesterModel Overrider Behavior Parameters  Behavior Parameters는 학습에 필요한 여러가지 파라미터들을 관리하는 컴포넌트다. Behavior Parameters는 다음과 같은 구성 요소들.. 2024. 8. 9.
[DevLogs] 구체 로봇 플레이어 만들기 - 아이디어와 기본 이동 "파괴" 를 바탕으로 만드는 게임에 어울리는 플레이어 캐릭터지금 진행하고 있는 프로젝트의 메인 키워드는 "파괴" 다. 플레이어나 지형지물의 Mesh가 게임 진행에 따라 파괴되는 점이 부각되는 메카 게임을 만들고 있었다.문득, 지금 이 플레이어의 형태나, 나아가서 게임의 구조 자체가 "파괴" 라는 키워드를 제대로 살리지 못하고 있는 것 같다. 좀 더 빠르고 활동적인 플레이어를 만들고 싶었는데, 마음에 드는 메카 애니메이션 리소스를 찾는 것이 여간 쉬운 일이 아니여서 계속 고민을 하고 있었다. 타협에 타협에 타협을 하다보니... 결국 본래 원하던 방향과는 너무나 멀어진 것. "파괴" 라는 핵심에서 멀어지는 것만 같았다. 그러던 도중, 과거에 취해 옛날에 들었던 노래들을 듣고 있었다.마이클 사이런스의 "Rec.. 2024. 5. 28.
[DevLog] 유니티 잡설, 새로운 프로젝트 LineRenderer를 통해 총의 궤적 표현하기유니티의 LineRenderer 컴포넌트는 인게임에서 선을 그려주는 컴포넌트다. LineRenderer를 아주 짧은 시간 켜줌으로써 총알이 날아가는 듯한 표현을 해줄 수 있다. _muzzleRenderer.enabled = true; // LineRenderer 활성화_muzzleRenderer.SetPosition(0, Muzzle.position); // LineRenderer의 시작점과_muzzleRenderer.SetPosition(1, _hitInfo.point); // 끝점 지정StartCoroutine(ShootFireCoroutine());  LineRenderer 컴포넌트를 muzzleRender라고 정의했고, 이를 활성화한 뒤에 Corou.. 2024. 5. 25.