관리 메뉴

도드넷

게임 제작 일지#6 - 유니티 Raycast 레이 캐스트! 본문

창고/게임 제작 [시즌2]

게임 제작 일지#6 - 유니티 Raycast 레이 캐스트!

도드! 2016. 10. 6. 18:09
반응형




게임 제작 일지#6 - 유니티 네비게이션 길찾기 이동시스템!


공격 시스템을 만들려고 했는데


그전에 이동 시스템을 좀 바꿔야할것 같았다.


무언가에 막히면 그 자리에 걸려서 벽에 꼴아박고 이동하지를 못한다.


현재 유니티2D 특성상 패스파인딩에 네비를 사용할수도 없고 그렇다고 프로젝트를 엎고 3D를 적용할순없는 일이니


나름 야매로 만들어보자.


유니티 2D 네비게이션 :: Dod's 프로젝트 패스파인더 1부

- 유니티 Raycast 레이 케이트



Scope, cleaned and mounted!


#1 레이캐스트 만드는 방법


            Vector3 dir = (Destination - This_Transform.position).normalized;
            float distance = Vector3.Distance(This_Transform.position, Destination);

            RaycastHit2D[] Raycasted_Info = Physics2D.RaycastAll(This_Transform.position, dir, distance, mask);

            for (int N = 0; N < Raycasted_Info.Length; N++)
            {
                Debug.Log(Raycasted_Info[N].collider.gameObject);
            }

            Order = "RESET";


레이 캐스트란?

- 어떤 포인트에서 어떤 방향으로 선을 그어 충돌을 검출한다.


레이 캐스트 만들기

- Physics2D.RaycastAll 명령어를 이용한다.

첫번째 파라미터는 레이 캐스트를 시작할 지점을 의미한다.

두번째 파라미터(dir)는 레이 캐스트를 그을 방향이다.


"방향(direction)"은 "지점(position)"과는 다른데, 한 점에서 다른 한점까지의 방향을 구하려면


(목적지 지점 - 시작할 지점).normalized


을 사용하며 된다.



#2 두점 사이의 거리를 구하는 방법


            float distance = Vector3.Distance(This_Transform.position, Destination);


#3 레이케스트 마스크 사용하기


  public LayerMask mask;

..


마스크는 퍼블릭 변수로 설정해서 인스펙터에서 직접 등록하고 mask 라는 레이어 마스크변수를 사용해준다.








반응형
Comments