Physics.Raycast(From Position, Direction, out hit, length, layerMask)
////
// 8 layer만 충돌
int layerMask = 1<<8;
// 8 layer 제외한 모든 layer와 충돌가능
layerMask = ~layerMask;
int layerMask = ~(1<<8) 이런식으로도 작성 가능
private void FixedUpdate(){
RaycastHit hit;
float rayLength = Mathf.Infinity;
if(Physics.Raycast(transform.position, transform.up, out hit, rayLength, layerMask))
{
// ray 디버깅
Debug.DrawRay(transform.position, transform.TransformDirection(Vector3.forward) * hit.distance, Color.yellow);
}
}
private void FixedUpdate()
{
grounded = false;
RaycastHit hit;
if (Physics.Raycast(groundRayPoint.position, -tr.up, out hit, groundRayLength, whatIsGround))
{
grounded = true;
tr.rotation = Quaternion.FromToRotation(tr.up, hit.normal) * tr.rotation;
}
}
마우스 클릭으로 3D 공간 선택
특정 방향으로 raycast gizmo line 그리기
gizmo를 그릴때는 항상 처음 부분과 마지막부분의 position값을 입력하게 된다.
(position, position + dir) 이와 같이 포지션을 작성하면 원하는 방향으로 gizmo를 그릴 수 있다.
유니티 배열 Array 노트 (0) | 2021.05.22 |
---|---|
유니티 #region 으로 코드 정리하기 노트 (0) | 2021.03.31 |
유니티 연산자 ? : ternary operator 사용법 노트 (0) | 2021.03.01 |
유니티 color script로 변경 노트 (0) | 2020.12.20 |
유니티 Singleton 싱글톤 노트 (0) | 2020.12.15 |
댓글 영역