일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |
- 유니티 ResourceManager
- unity
- 너비 우선 탐색
- 깊이 우선 탐색
- 코드블럭 테마
- 소스코드 줄번호
- LFS
- 유니티 Vector3
- 유니티 시야 가림
- 알고스팟
- LookRotation
- 유니티 InputManager
- ML-Agents
- c++
- 유니티 리소스매니저
- Mathf.Clamp
- git-lfs
- InputManager
- LayerMask
- 유니티 Collision
- Raycast
- 유니티
- 오브젝트 풀링
- 유니티 오브젝트 풀링
- 유니티 머신러닝
- c++ 문자열 자르기
- 유니티 Rotate
- Quaternion.Euler
- 이진트리
- eulerAngles
- Today
- Total
목록IT (100)
무민은귀여워
gitlab의 프로젝트를 github로 옮기는 것은 아래 블로그 참고 https://codingdiary99.tistory.com/5 [Git] Gitlab에서 Github로 미러링 설정 💡예전에 프로젝트를 했던 내용이 gitlab에 있는데, 현재는 github를 사용중이라 커밋을 옮기기로 했습니다. 그래서 오늘은 gitlab에서 github로 미러링 설정을 해보도록 하겠습니다. 1. Github에서 토큰 codingdiary99.tistory.com 100mb가 넘는 파일이 있어 lfs 설정이 필요한 프로젝트는, 위 방법처럼 브라우저 상에서만으로는 옮길 수 없다. (마지막에 미러링 시도 버튼을 누르면 error로 끝남) 아래 다른 블로그를 참고하여 git lfs와 BFG Repo Cleaner를 설치 ..
1. 오브젝트 풀링 2-1. Poolable.cs 2-2. PoolManager.cs 1. 오브젝트 풀링 오브젝트 풀링은 개체의 생성 삭제 등으로 인한 메모리 부하를 막기 위해, 미리 준비가 된 개체 풀을 만들어 놓고 필요시에 개체를 꺼내쓰고 사용한 개체는 다시 반납하는 방법이다. 오브젝트 풀링 사용 예 @Pool_Root 를 최상위 루트로 하여, 아래에 개체별 개별 풀 {개체이름}_Root 를 만들어 관리한다. 풀 내에 만들어지는 개체들은 비활성 상태로 들어간다. 사용시에는 풀에서 꺼내어 활성상태로 바꿔준다. (ex. UnityChan_Root 에 있던 UnityChan 개체들이 활성 상태로 위로 올라왔다. 2-1. Poolable.cs Poolable 인 객체들만을 오브젝트 풀링 대상으로 하기 위함 ..
1. 문제 2. 풀이 1. 문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 2. 풀이 1. 처음 record를 읽으며, 유저 아이디 : 닉네임 map 을 만든다. enter, change의 경우 이름 변경하여 저장. 2. 다시 recored를 읽으며 result 문장 작성 #include #include #include #include using namespace std; vector solution(v..
1. 문제 2. 풀이 2-1. 첫번째 풀이 2-2. 두번째 풀이 1. 문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 2. 풀이 문제에서 설명한 순서 그대로 따라했다. 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상..
문자열이 주어졌을 때, 공백 단위로 단어를 나누는 방법 ex) 문자열 "apeach frodo muzi" 을 "apeach", "frodo", "muzi" 로 나누어 저장 단어 갯수를 알 경우 1. substr 2. istringstream 단어 갯수를 모를 경우 3. stringstream 4. strtok 1. substr #include #include using namespace std; int main() { string str = "apeach frodo muzi"; vector names; for (int i = 0; i < 3; i++) { names.push_back(str.substr(0, str.find(" "))); str = str.substr(str.find(" ") + 1); ..
좌클릭 시 플레이어를 이동시키고, 카메라와 플레이어 사이 시야를 가리는 물체가 있으면 카메라를 물체 앞으로 옮겨준다. 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..
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..