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빼고 선택 가능.
반응형
'Programming > Unity' 카테고리의 다른 글
유니티 애니메이션 연습 (0) | 2016.07.16 |
---|---|
유니티 ugui 클래스 관계도 (0) | 2016.07.09 |
Live 2d 사용해보기. (0) | 2016.03.27 |
유니티 속성(Attributes) 모음 (0) | 2016.03.20 |
데이터 관리 엑셀(xlsx)에 XML 데이터 불러오기 (0) | 2016.02.15 |
연습 작업하기 (0) | 2016.02.13 |
Unity UI Button 만들기(스크립트 연결하기) (3) | 2016.02.09 |
Editor가지고 놀기 (0) | 2016.02.02 |