Notice
Recent Posts
Recent Comments
Link
박민혁의 개발
점멸 구현 본문
void Flash()
{
Vector2 player = transform.position;
Vector2 mouse = Camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 dir = (mouse - player).normalized;
RaycastHit2D hit = Physics2D.Raycast(player, dir, 1.5f, layerMask);
Vector3 target = dir;
if (hit)
{
target = dir * hit.distance;
}
else
{
target = dir * 1.5f;
}
gameObject.transform.position = transform.position + target;
}
포인트는 if문의 hit인데 이 코드의 점멸거리는 1.5f 이다
사실 원하는 위치로 이동시키는거라 이동 방향을 정하고 현재 포지션에 더해주는것 만으로 코드가 끝날수 있지만
그 경우 점멸 위치에 벽이 있다면 끼어 버리게 된다
그래서 레이캐스트를 레이어 마스크를 만날때까지 쏘는게 raycasthi2d hit 가 그역할을 해주며
현재 layermask는 wall 부분을 담고 있다
즉 1.5 거리 만큼 가거나 wall 레이어를 만난다면 레이캐스트가 부딪힌것
아래 if문에서 만약 히트가 성공했다면 (무언가에 부딪혔다면) 그 레이의 길이만큼만 방향으로 이동하여 벽앞까지만 가고
그 너머를 가지 않는것
아니라면 원래거리 1.5f 만큼을 이동한다
'TIL' 카테고리의 다른 글
유니티 언어 설정 (1) | 2024.06.14 |
---|---|
의외로 심플한 블랙홀 구현 (0) | 2023.12.19 |
상태이상 구현하기 그런데 최적화를 곁들인 (0) | 2023.12.19 |
데바데 스킬 체크 구현 (1) | 2023.12.19 |
유니티 유도 미사일 (1) | 2023.12.19 |