Programming/Unity
Unity Raycast 사용법
휘탱
2016. 2. 19. 11:39
UI 작업하다 Ray가 안 맞아서 삽질 좀 해서 적어 놓음.
()열고 매개변수 보거나 레퍼런스 보면 되긴 하는데 그냥 적음.
2D Raycast
1 2 3 4 5 6 7 8 | Vector2 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); Ray2D ray = new Ray2D(pos, Vector2.zero); RaycastHit2D hit = Physics2D.Raycast(ray.origin, ray.direction); if (hit.collider == null) { return; } | cs |
UI 작업 도중 사용함.
보통 쓸때
1 2 3 4 5 6 7 8 9 10 11 12 13 | int mask = 1 << LayerMask.NameToLayer("Ground"); // mask = ~mask; if (Input.GetMouseButtonDown(0)) { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, Mathf.Infinity, mask)) { Debug.Log(hit.collider.gameObject.name); } } | cs |
마스크는 레이를 선택한 레이어만 맞추던가 반대로 사용 가능.
mask에 ~연산자를 사용해 반전시켜 Ground빼고 선택 가능.
반응형