도드넷
게임 제작 일지#6 - 유니티 Raycast 레이 캐스트! 본문
게임 제작 일지#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 라는 레이어 마스크변수를 사용해준다.
'창고 > 게임 제작 [시즌2]' 카테고리의 다른 글
게임 개발 일지#8 - 유니티 공격 시스템 (0) | 2016.10.10 |
---|---|
게임 제작 일지#7 - 유니티 네비게이션 2D 패스 파인딩 길찾기!! (2) | 2016.10.07 |
게임 제작 일지#5 - 유니티 캐릭터 재설계 스프라이트 랜더러는 함정. (0) | 2016.10.06 |
게임 제작 일지#4 - 유니티 애니메이션 만들기 + 캐릭터 대칭 설정 (0) | 2016.10.06 |
게임 제작 일지#3 - 유니티 유닛을 이동시켜보자 대각선이동 함수! (0) | 2016.10.05 |