| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- Unity
- 유니티
- 습관형성 #직장인자기계발 #오공완
- Simulation
- 디지털트윈
- unity korea
- 티스토리챌린지
- GetComponent
- 드롭다운
- 깊이탐색
- readonly
- dropdown
- 크루스칼
- unity sparkmain(clone)
- sparkmain(clone)
- articulation body
- dfs
- 오블완
- list clear
- 유니티 sparkmain(clone)
- 트리구조
- navisworks api
- 행동트리
- 너비탐색
- removeAll
- raycast
- 최단거리 알고리즘
- 최소신장트리 mst
- sparkmain(clone) 무한생성
- C#
- Today
- Total
목록2023/08 (8)
낑깡의 게임 프로그래밍 도전기
1. Instantiate 개요Instantiate는 Unity에서 오브젝트를 복제(인스턴스화)하는 함수로, 주로 프리팹이나 씬 내의 기존 게임 오브젝트를 복제하는 데 사용됩니다.벡터로 하면 월드기준TRANSFORM은 월드기준public static Object Instantiate(Object original);public static Object Instantiate(Object original, Transform parent);public static Object Instantiate(Object original, Vector3 position, Quaternion rotation);public static Object Instantiate(Object original, Vector3 positio..
ForceMode는 뒤에 Force생략 가볍게 미는거ForceMode.Impulse 순간적으로 미는거(딱콩) 대포날리기.캐논에서 스크립트를 짜서 날릴때 환의 트랜스폰(위치)와 리지드바디 정보가 필요 해당 스트립트로 짜서 저 블렛obj에 블랫 드래드 드랍블렛오브제의 켓컴포넌트해서 리지드바디넣어줌 자 이제 날렸으니 총알 위치를 맞추자로테도 맞추어 총구방향과같게!날리기 코드블렛 오브제 위치를 내 위치로 바꾸자 영향을 안받게 하기 : 부모 껍데기 안에 넣기(검정색 직사각형은 모델링일 뿐) 자이제 포인트에 넣자 자이제 복사해서 리필 환을 만들어 쏘자복사 키워드는 Instantiate(복사할 게임 오브젝트);
키네마틱은 중력의 영향, 물리적의 영향을 안받는 상태다.무적 아이템을 먹는다면 뚫고 지나간다면 콜리전을 끄는것도 방법이고 다 뿌시고 간다면 키네마틱을 키는 것도 방법이 겠다. 오브젝트 이름으로 찾으면 이름이 바뀌면 에러테그는 편리하지만 몬스터의 종류가 늘어날때 마다 하나하나 씩 다 만들어줘야함 클래스하는법 널이아니면 몬스터를 가져온거(가져오기 성공)현재 몬스터가 너무 추상화되어있어서 슬라임 파괴가 어려움 좀더구체화 시켜줘야함 상속을 통해서 컴퓨터마다 성능이 달라 스피드가 차이 나는 문제 해결Time.deltaTime 대각선으로 갈때 빨리가는 것해결 (D와W같이 눌렀을때)D와 W를 같이 누르면 (1, 1, 0)이 되므로 피타코라스의 법칙에 따라 root2씩이동한다. AddForce 는 월드좌표계 기준Ad..
몬스터라는 그룹장에 왕클래스를 넣어주고 하위 오브젝트 드래곤 스켈레톤에 각각 따로 맞는 스크립트를 넣어주어야 한다고한다. 그리고 플레이어가 주도적으로움직여 공격을하고 몬스터들은 hp를 깍임 당하기 때문에 콜리젼에 대한 충돌 함수는 플레이어가 가지고 있는게 맞다. 다른 스크립트에 있는 클래스를 GetComponent로 가지고 올 수 도 있지만 FindObjectOfType();로 가지고 오는게 더 구현이 잘 되었다. C#은 상속 후 재정의 할때 virtual을 쓰면 자식에는 override를 붙여 줘야하고 new를 적으면 새로운 함수가 된다고 한다.(아직 애매한 개념이다.)
메인카메라를 플레이어에 붙이기 1. FollowPlayer라고 알기쉽게 새스크립트를 만들어주고 MainCamera라 넣었다. 2. 플레이어 오브젝트는 직접 끌어 넣어 줄 것이기 때문에 public으로 설정해 주었다. 3. player라는 게임 오브젝트를 매 프레임마다 따라 다녀야하기 때문에 Update에 할당해 주고 포지션을 플레이어 포지션으로 해준다. 4. 여기서 끝나면 오브젝트와 카메라가 겹쳐 안보이기 때문에 offset(임의로 수치를 조정하는 것)를 준다. (teansfrom.position의 type에 알맞게 Vector3를 써서 적당한 수치를 부여하여 설정, 매직넘버 조심★) 벽안에서만 놀아야하는 오브젝트가 벽을 뚫을 때 대처법 1. Collidert끼리 만나는 부분에 공구리를 잘 친다. 2. ..
Vector 는 구조체 형식이며 스태틱이라 데이터 영역에 할당된다. *위의 예시는 좌표자체를 바꾸는 것이라 world축에서 유용하다. (Local기준일때 Translate 사용) Rotate도 Local기준 GetComponent();는 앞에 gameObjet.GetComponent();가 생략되어있다. Find 시리즈(유니티 오브젝트를 찾는 기능)를 사용하며 연산이 더 많이 들어가기때문에 가급적이면 사용하지 않는게 좋음(남용 금지). 기본적으로 검색을 해서 가져오는 기능 (실행 후 가져다쓸때 쓴다고?? 런타임에서 새로만들어진 놈이 기존의 놈을 찾아야할때) //Find는 GameObjet.Find("게임오브젝트이름")으로 //특정 게임오브젝트를 가져올 수 있지만 위험하다 //이름을 통해 찾는 다는건 많은..
게임의 오브젝트를 움직일때는 transform을 건드려서 사용. 보통 x, y, z 축을 사용하여 Vactor3로 선언. (x, y만사용하면 Vactor2) Destroy(gameObjext); //게임오브젝트 파괴 유니티 오브젝트 움직이기 Alt 마우스 좌클릭움직임 - 축기준 회전 Shift 마우스 우클릭움직임 - 뷰기준 회전 Alt + Ctrl 마우스 클릭움직임 - 이동 마우스 휠 - 확대 축소 오브젝트 이름 더블 클릭 - 해당 오브젝트 전체 맞춤 보기 W 위치 E 회전 R 크기 transform.position = Vector3.zero; Vector3를 0, 0, 0으로 위치 초기화 transform.Rotate(Vector3.back, 1); Vector3에 대해 0, 0, -1 뒤의 1은 좌표..
유니티 시작 start : 첫 시작시 실행 Update: 매 프레임 마다 실행 컴포넌트: 어떤 속성과 기능이 있는 것들을 유용하게 묶어 기능화 시킨 것 어떠한 기능을 수행하는 가장 작은 단위(현실"모듈" = 게임"컴포넌트") C#스트립트 타입은 클래스이자 컴포넌트다 c# 스크립트는 기본적으로 MonoBehaviour를 상속받고 있음 소스를 타고 가면 확인가능(단축키: F12) MonoBehaviour : Behaviour : Component MonoBehaviour 기본 트랜스폼 게임오브젝트라고 하면 기본적으로 위치 크기 회전을 가짐 적합하지 않은 컴포넌트는 넣지마라 Start - 첫 실행 시 한번만 호출. 보통 초기화가 필요한 상태에서 사용함.(C#에서의 main과 같이 쓰기로 함) (*Start로도..