일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 너비 우선 탐색
- 유니티 ResourceManager
- 유니티
- 소스코드 줄번호
- 유니티 InputManager
- 깊이 우선 탐색
- 코드블럭 테마
- c++ 문자열 자르기
- 유니티 Vector3
- LookRotation
- unity
- 이진트리
- LayerMask
- eulerAngles
- LFS
- 유니티 Rotate
- c++
- git-lfs
- 유니티 오브젝트 풀링
- ML-Agents
- Quaternion.Euler
- 유니티 시야 가림
- 유니티 머신러닝
- Mathf.Clamp
- 오브젝트 풀링
- 유니티 리소스매니저
- InputManager
- 유니티 Collision
- 알고스팟
- Raycast
- Today
- Total
목록IT/Unity (17)
무민은귀여워
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/czkyac/btrC3e0UORb/r2PhKshykVo0wF9ZITfMkk/img.png)
1. 오브젝트 풀링 2-1. Poolable.cs 2-2. PoolManager.cs 1. 오브젝트 풀링 오브젝트 풀링은 개체의 생성 삭제 등으로 인한 메모리 부하를 막기 위해, 미리 준비가 된 개체 풀을 만들어 놓고 필요시에 개체를 꺼내쓰고 사용한 개체는 다시 반납하는 방법이다. 오브젝트 풀링 사용 예 @Pool_Root 를 최상위 루트로 하여, 아래에 개체별 개별 풀 {개체이름}_Root 를 만들어 관리한다. 풀 내에 만들어지는 개체들은 비활성 상태로 들어간다. 사용시에는 풀에서 꺼내어 활성상태로 바꿔준다. (ex. UnityChan_Root 에 있던 UnityChan 개체들이 활성 상태로 위로 올라왔다. 2-1. Poolable.cs Poolable 인 객체들만을 오브젝트 풀링 대상으로 하기 위함 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c3fk5a/btrCBSRowQ0/KO9tmtlNYUYLmh1UgCicQK/img.png)
좌클릭 시 플레이어를 이동시키고, 카메라와 플레이어 사이 시야를 가리는 물체가 있으면 카메라를 물체 앞으로 옮겨준다. 1. Define 2. CameraController 3. InputManager 4. PlayerController 5. 실행 1. Define public class Define { public enum MouseEvent { Press, Click, } public enum CameraMode { QuarterView, } } 2. CameraController _delta : 카메라의 기준 위치 _player : 플레이어. 툴 내에서 사용할 캐릭터 오브젝트를 지정 LateUpdate() 플레이어 이동 시 깜빡거리는 현상은, 플레이어 키입력에 따른 update()와 카메라 updat..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/CffSm/btrCqojcOSa/BVUggAlFu5ZouMGe3ZIpt1/img.png)
1. 충돌 OnCollisionEnter 2. 트리거 OnTriggerEnter 3. 투영 ( Local - World - Viewport - Screen ) 4. 레이캐스트 Raycast 5. LayerMask 1. 충돌 OnCollisionEnter // 1) 나 혹은 상대한테 RigidBody 있어야 한다 (IsKinematic : off) // 2) 나한테 Collider가 있어야 한다 (IsTrigger : off) // 3) 상대한테 Collider가 있어야 한다 (IsTrigger : off) private void OnCollisionEnter(Collision collision) { Debug.Log($"Collision @ {collision.gameObject.name} !"); } ..
입력한 경로의 프리팹 리소스를 로드해, 프로그램 실행 중 인스턴스를 생성/삭제 할 수 있게한다. public class ResourceManager { public T Load(string path) where T : Object { return Resources.Load(path); } public GameObject Instantiate(string path, Transform parent = null) { GameObject prefab = Load($"Prefabs/{path}"); // 경로는 최상위 폴더를 Resources로 한다 if (prefab == null) { Debug.Log($"Failed to load prefab : {path}"); return null; } return Ob..
입력처리를 위한 InputManger - 다른 곳에서 (PlayerController 등) 여러번 입력 체크하지 않고, 매니저에서 한번 체크한 뒤 이벤트로 전파하는 방식을 가능하게 한다 - 입력을 update문에서 직접 처리하면, 코드양이 많아졌을 때 입력 출처를 알기 어려움 1. InputManager 만들기 2. Managers 에 추가 3. PlayerController 에 함수등록 1. InputManager 만들기 Managers에서 사용되므로 굳이 MonoBehaviour 로 만들지 않아도 된다 using System; public class InputManager { public Action KeyAction = null; public void OnUpdate() { if (Input.any..
1. 절대 회전값 eulerAngles 2. Rotate 3. Quaternion.Euler 4. 선형 보간 Slerp 5. LookRotation 6. wasd 키 입력으로 회전 및 이동 1. 절대 회전값 eulerAngles float _yAngle = 0.0f; _yAngle += Time.deltaTime * 100.0f; // 절대 회전값 transform.eulerAngles = new Vector3(0.0f, _yAngle, 0.0f); 2. Rotate // += delta transform.Rotate(new Vector3(0.0f, Time.deltaTime * 100.0f, 0.0f)); 3. Quaternion.Euler float _yAngle = 0.0f; _yAngle += T..
1. transform 이동 transform.position 이용 transform.Translate 이용 wasd 키 입력으로 이동시키기 2. Vector3 Vector3 이해하기 위해 만든 MyVector 내 위치에서 목적지를 바라보는 벡터 구하기 1. transform 이동 transform.position 이용 * TransformDirection : 로컬 공간에서 월드 공간으로 변형 ( 역반향, InverseTransformDirection ) float _speed = 10.0f; transform.position += transform.TransformDirection(Vector3.forward * Time.deltaTime * _speed); transform.Translate 이용 f..
- 유니티 싱글톤 패턴 사용 예시 - Manager 코드 - Manager 사용 코드 유니티 싱글톤 패턴 사용 예시 - Manager 를 싱글톤 패턴을 사용하여 만든다 - 유니티는 컴포넌트 단위로 구성되므로, Manager 또한 컴포넌트를 (Componenet - Behavior - MonoBehaviour) 상속받은 MonoBehaviour 로 만든다 - 없으면 안되는 항목이므로 네이밍컨벤션으로 @를 붙여주고, DontDestoryOnLoad() 를 사용한다 Manager 코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Managers : MonoBehaviour { static M..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/2yaVs/btqAOIkmIs4/n9g6P41e6E4poOm5xOaRX1/img.png)
1. git, git-lfs 설치하기 git 설치 https://git-scm.com/ Git git-scm.com 위 링크에서 다운로드 (추가) 프로젝트 관리를 위해 github 혹은 gitlab 계정을 생성한다. https://gitlab.com/ The first single application for the entire DevOps lifecycle - GitLab “From project planning and source code management to CI/CD and monitoring, GitLab is a complete DevOps platform, delivered as a single application. Only GitLab enables Concurrent DevOps t..
http://theeye.pe.kr/archives/2764 불러오는 중입니다...