티스토리 뷰
Rookiss님의 유니티 엔진 강의를 보고 정리한 내용입니다.
한 지점에서 특정 방향으로 레이저를 발사하여, 맞은 물체를 파악하는 방식입니다. 원래는 컴퓨터 그래픽스의 기술이기도 합니다.
기본적인 사용 방법은 Physics.Raycast(~~~~);입니다만 안에 들어가는 방식은 매우 다양합니다.
if (Physics.Raycast(transform.position, Vector3.forward, out hit, 10))
{
Debug.Log($"RayCast!{hit.collider.gameObject.name}");
}
이번 방식은 레이저에 닿는 모든 물체를 감지하는 방식입니다.
RaycastHit[] hits;
hits = Physics.RaycastAll(transform.position + Vector3.up, Vector3.forward, 10);
foreach(RaycastHit hit in hits)
{
Debug.Log($"RayCast!{hit.collider.gameObject.name}");
}
Debug.Log로 선을 직접적으로 보는 방법
Vector3 look = transform.TransformDirection(Vector3.forward);
Debug.DrawRay(transform.position + Vector3.up, look * 10, Color.red);
Layout 이용해서 RayCast 사용
// Local <-> World <-> Viewport <-> Screen
//Debug.Log(Input.mousePosition);
//Debug.Log(Camera.main.ScreenToViewportPoint(Input.mousePosition));
if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(Camera.main.transform.position, ray.direction * 100.0f, Color.red, 1.0f);
LayerMask msk = LayerMask.GetMask("Monster");
//int mask = (1 << 8) | (1 << 9);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 100.0f, msk))
{
Debug.Log($"RayCast Camera @ {hit.collider.gameObject.name}");
}
//Vector3 mousePos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Camera.main.nearClipPlane));
//Vector3 dir = mousePos - Camera.main.transform.position;
//dir = dir.normalized;
//Debug.DrawRay(Camera.main.transform.position, dir * 100.0f, Color.red, 1.0f);
//RaycastHit hit;
//if (Physics.Raycast(Camera.main.transform.position, dir, out hit, 100.0f))
//{
// Debug.Log($"RayCast Camera @ {hit.collider.gameObject.name}");
//}
}
'클라이언트 공부 > 유니티' 카테고리의 다른 글
Collision, Trigger (0) | 2022.09.16 |
---|
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 학교
- 워셜알고리즘
- 컨퍼런스
- 링크드 리스트
- 개발
- queue
- 레지스터
- 멀티쓰레드
- 시스템보안
- 스레드풀
- 알고리즘
- Select모델
- c++
- 야경
- 자료구조
- 지뢰찾기
- 백준
- STL
- 보안
- BFS
- 드림핵
- Dreamhack
- 고양이
- 더블버퍼링
- 인제대학교
- 정보보안
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함