본문 바로가기

분류 전체보기132

[Unity] Mixamo 애니메이션 적용법 1. Mixamo 사이트 방문 Mixamo www.mixamo.com  2. 내 캐릭터에 적용시키고 싶은 애니메이션 고르기  3. 내 캐릭터에 적용시키기  Upload Character 버튼을 누르고 Select Character File을 눌러 캐릭터 파일 업로드 조금 기다리면 내 캐릭터가 Upload 된다.  여기서 다운로드 버튼을 누르고  세팅을 설정해주면 끝! 여기서 Without Skin으로 다운로드 해준다.  그리고 유니티에서 몇가지 설정을 해주어야 파일이 잘 동작된다. 1. Rig -> Animation Type -> Humanoid 로 변경  2. Animation -> 아래로 스크롤 -> 애니메이션 밑을 확인 여기서 Root Transform Rotation, Position의 Bake .. 2024. 6. 3.
[Unity] AI Navigation 유니티는 AI Navigation을 활용하여 NPC가 인공지능을 활용해 움직일 수 있게 한다  Navigation Mesh-> 캐릭터가 움직일 수 있는 경로 Bake -> NavMesh 컴포넌트를 사용하여 구현 1. Hierarchy 창에서 경로를 넣을 오브젝트 선택 후 Bake 클릭 Agent Radius - 지형에 Agent가 얼마나 가깝게 다가갈 수 있는지Agent Height - Agent 가 다가갈 수 있는 공간의 높이Max Slope - Agent 가 걸어올라갈 수 있는 경사의 기울기Step Height - Agent 를 멈춰세우는 장애물의 높이 Min Region Area - 연결되지 않은 작은 내비메시 영역을 제거Manual Voxel Size - Voxel은 부피를 가진 픽셀이라는 뜻 -.. 2024. 5. 31.
[Unity] 3D-Dungeon - 움직이는 발판 움직이는 플랫폼을 만들어보기로 했다.  using UnityEngine;public class MovingPlatform : MonoBehaviour{ private Vector3 startPos; private Transform curPos; private bool isRight; public float maxMovingDistance; public float movingSpeed; private void Start() { startPos = transform.position; curPos = transform; isRight = true; } private void Update() { Moving(.. 2024. 5. 30.
[Unity] Mathf 외워두면 유용할 Mathf 함수들을 정리해보자Mathf.AbsMathf.Abs(float num)num에 대한 절댓값 반환 Mathf.ClampMathf.Clamp(value, minValue, maxValue)value가 minValue보다 작다면 value = minValuevalue가 maxValue보다 크다면 value = maxValue로 보정value가 minValue와 maxValue 사이의 값이면 보정하지 않는다  Mathf.Min & Mathf.MaxMathf.Min(a,b);Mathf.Max(a,b);a,b 중 더 작은값이나 큰 값 리턴 Mathf.Cell & Mathf.Floor & Mathf.RoundMathf.Cell(float num)Mathf.Floor(float num)Mat.. 2024. 5. 29.
[Unity] 3D-Dungeon 구현 완료 -> 하늘색으로 표시필수요구사항1. 기본 이동 및 점프 구현 완료2. 체력바 UI 연동 완료-> 배고픔 다 달면 체력 깎임 3. Raycast를 활용한 동적 환경 조사 완료 4. 점프대 구현 완료  5. 아이템 데이터 ScriptableObject로 관리 완료 6. 아이템 사용 구현 선택요구사항1. 추가 UI 구현 완료2. 3인칭 시점 구현 완료3. 움직이는 플랫폼 구현 [Unity] 3D-Dungeon - 움직이는 발판움직이는 플랫폼을 만들어보기로 했다.  using UnityEngine;public class MovingPlatform : MonoBehaviour{ private Vector3 startPos; private Transform curPos; private bool isRig.. 2024. 5. 28.
[Unity] TMPRO 한글 Import 하는 방법 일반 글꼴을 TMP 로 변환할 때, 한글을 지원하도록 하는 방법이다 다음과 같이 숫자를 쓰고 Generate Font Atlas 버튼을 누르면한글, 영어, 특수문자 등을 TMP형식으로 변환 가능하다. 2024. 5. 27.
[Study] 응집도 & 결합도 응집도- 모듈 내부 요소 간 연관 정도- 한 스크립트가 하나의 기능만을 수행하는 것- 코드의 응집도는 높아야 좋다. 결합도- 외부 모듈 간의 상호 의존성- 코드는 결합도가 낮아야함 - 결합도가 높으면 클래스 간 의존성이 높은 것 -> 한 클래스 수정하면 다른 클래스 수정해야 할 가능성이 높아진다-> 협업 시 다른 팀원이 코드를 수정하면 내 코드를 수정해야 할 가능성이 높아진다는 뜻... 좋지않군  결합도를 낮추는 방법?1. 작은 단위의 여러 인터페이스 사용하기! -> 기능 별로 쪼개서 인터페이스 사용하기-> 협업 시 독립적 프로그래밍 가능 (선언만 인터페이스에서 해주고 구현은 클래스 내에서 해주면 된다) 2. 응집도 높이기! -> 코드 내의 기능들이 그 안에서 수행되고 끝나도록 코딩하기!  인터페이스의 .. 2024. 5. 27.
[Study] 동기 & 비동기 동기 (Synchronous)- 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작 수행 가능- 즉, 한 코드의 실행이 끝난 후 다음 코드가 실행되는 과정  - 직렬은 데이터를 하나씩 순서대로 처리하거나 전송하는 방식.동기는 실행이 완료될 때까지 다른 코드들이 대기하는 방식을 의미하고직렬은 데이터 전송 방식에 대한 용어이다 비동기 (Asynchronous)- 요청을 보냈을 때 응답이 안와도 다음 동작 수행 가능- 즉, 동시에 작업이 실행되고 작업이 빠른 순으로 끝나는 것 - 코루틴은 비동기 (처리가 너무 빨라서 동기처럼 보이는 것 뿐)    -> 코루틴은 함수 처리 중 잠시 멈췄다가 다시 시작할 수 있는 함수 - 언뜻 보면 병렬과 비슷하나 다르다.병렬은 여러 작업을 동시에 실행하는 방식이긴 하나 주로 .. 2024. 5. 27.
[Unity] AnimationCurve AnimationCurve- 애니메이션의 Keyframe을 사용하여 값을 보간하는데 사용되는 클래스 - 시간에 따라 값을 부드럽게 변화시키는 커브를 정의할 수 있음 - 애니메이션 클립의 모든 프로퍼티 (아래 사진에서 왼쪽 목록들) 가 가질 수 있음- 시간에 따라 해당 프로퍼티가 변경되는 방식을 제어하는 것! - 유니티 애니메이션에서는 모드를 선택할 수 있다. 도프 시트 모드의 애니메이션 뷰에서는 각 프로퍼티의 애니메이션 값이 선형 트랙으로만 표시되지만커브 모드에서는 그래프에서 선으로 시각화된 프로퍼티 값의 변화를 확인할 수 있다어떤 모드를 사용하든 커브는 여전히 존재! 도프 시트 모드는 키프레임이 발생한 시점에만 데이터를 보여주는 단순화된 뷰를 제공할 뿐이다. 그렇다면 여기서 키프레임이란?  Keyfra.. 2024. 5. 27.