Notice
Recent Posts
Recent Comments
Link
«   2026/05   »
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
Archives
Today
Total
관리 메뉴

행복한 개구리

Unity3D 개인프로젝트 21.04.25. 본문

Unity/Project : Unity 3D Untitled

Unity3D 개인프로젝트 21.04.25.

HappyFrog 2021. 4. 25. 16:22

 

 

RaycastHit은 Ray를 쏴서 맞은 collider를 가진 오브젝트의 정보를 담고있다. 그것을 조건문안의 out hit으로 정보를 가져오고, hit의 위치를 hit.point로 정해서 (보는 방향의 위치 - 나의 위치).normalized를 시켜서 방향값을 구했다.

 

normalized(일반화)는 벡터 사이의 거리를 구해서 그것의 길이를 1로 만들어 방향값으로 바꿔주는 역할은 한다. 위의 경우엔 (hit.point - this.transform.position) * this.speed * 2.5f를 한다면 => [일반화를 안한다면]

레이의 최대 사거리가 100f이므로 this.rigid.vleocity(=속도) = ((100,0,0) - (0,0,0)) * 2 * 2.5 = (500,0,0)이 될 수도 있기때문에 방향을 구할때는 일반화가 필수이다.

 

회피의 이동은 Ray를 이용하여 바라보는 방향의 반댓방향으로 움직이도록 만들었다. 작동은 잘 하는데 구르는 도중에 조이스틱을 움직이면 구르는 애니메이션은 그대로 출력되면서 이동하는 방향은 조이스틱방향으로 움직이는 이상한 상황이 발생한다.

 

 

 

bool isDodge를 필드에 선언해두고 회피중일때, 아닐때를 나눠두니 구르는 도중에 조이스틱조작을 받는 상황이 해결됐다.

- 구르면서 이동 해결(애니메이션은 약간 부자연스럽게 나온다.)

 

 

============================================================================

 

 

정상적으로 먹었지만 스프라이트를 불러오는데 오류가 있다.

++아이템아이콘도 눌러지지 않는다.

 

 

 

UIItem에서 스프라이트를 출력해야 하는데 그걸 UIInven에서 만들어두고 생성된 객체에 할당을 안해줘서 생긴 현상이었다. 간단하게 해결되었다.

 

++마찬가지로 생성된 UIItem에 id가 0으로 출력되는 현상이 있었는데 그 또한 위 사진의 Init에서 

this.id = id라고 할당을 해 주어야 되는 것인데 안해줘서 그런 것이었다.

 

해결모습

 

============================================================================

 

 

 

이어서 버튼을 눌렀을 때, 아이템의 ID는 잘 나오는데 대리자를 통해 선언했을 때, 아이템이 장착되지 않는 현상이 발생했다.

 

 

 

 

 

 

 

여기서 테스트를 하기 위해 대리자선언부분에서 Debug를 선언해보앗다.

 

 

 

같은 NullReferenceException에러가 뜨는걸 보아하니 아마 대리자를 선언하고 정의할 때 잘못된 듯 하다.

 

 

 
유니티 오류를 통해 들어오면 이렇게 할당된 것을 사용하는 코드에서 자꾸 에러가 난다.

============================================================================