123456789101112131415161718192021222324252627282930313233343536 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
-
- [ExecuteAlways]
- public class ScreenSpacePlacement : MonoBehaviour
- {
- [SerializeField]
- private Camera m_Cam;
- [SerializeField]
- private Transform m_FlareObject;
-
- private bool m_MouseDown;
-
- void OnGUI()
- {
- Event currentEvent = Event.current;
- Vector2 mousePos = new Vector2();
-
- if (currentEvent.type == EventType.MouseDown) m_MouseDown = true;
- if (currentEvent.type == EventType.MouseUp) m_MouseDown = false;
-
- mousePos.x = currentEvent.mousePosition.x;
- mousePos.y = m_Cam.pixelHeight - currentEvent.mousePosition.y;
-
- if (m_FlareObject != null && mousePos.x > 0 && mousePos.y > 0 && mousePos.x < m_Cam.pixelWidth && mousePos.y < m_Cam.pixelHeight)
- {
- Vector3 point = m_Cam.ScreenToWorldPoint(new Vector3(mousePos.x, mousePos.y, m_Cam.nearClipPlane));
-
- if (m_MouseDown)
- {
- m_FlareObject.position = point;
- }
- }
- }
- }
|