unity 마우스 클릭 위치에서 물체 생성

1020 단어 unity
먼저 코드를 입력하십시오:
if (Input.GetMouseButtonUp (0)) {
			if (EventSystem.current.IsPointerOverGameObject ()) {
				Debug.Log ("touch area is UI");
			}
			else{
				Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
				RaycastHit hit;
				if (Physics.Raycast (ray, out hit)) {
					Debug.Log (hit.point);
					GameObject point= GameObject.Instantiate (pointPrefab, hit.point, transform.rotation)as GameObject;
				}
			}
		}

실현된 기능은 마우스 클릭의 위치에서 장면에서 물체를 생성하는 것이다.
이 안에는 몇 개의 구덩이가 있다.
1. 내 장면에 UI 공간이 있기 때문에 사용자가 button을 눌렀을 때 물체를 생성하지 말아야 하기 때문에 판단 코드를 추가한다.
if (EventSystem.current.IsPointerOverGameObject ());
2. 마우스 클릭을 가장 먼저 판단할 때 사용하는 판단문은 Input이다.GetMouseButton(0)은 클릭할 때마다 여러 개의 물체를 생성하고 마우스를 누르면 계속 생성되기 때문에 Input로 변경했습니다.GetMouseButtonUp(0) - 마우스 왼쪽 버튼이 놓일 때만 물체가 생성됩니다.
3. 마우스포지션에서 물체를 직접 생성하면 화면에 점을 찍는다. 얻은 좌표는 카메라가 화면을 표시하는 좌표이고 왼쪽 아래(0,0), 오른쪽 위에(1,1)이다.그래서 방사선을 발사하는 방식으로 클릭한 점을 장면에 투사하여 그의 세계 좌표를 얻는다.

좋은 웹페이지 즐겨찾기