unity windowEditor平臺下鼠標左鍵控制攝像機的視角
阿新 • • 發佈:2018-05-05
one lec event math ica unit pla value RR
工作的原因,今天就只寫了unity下的鼠標左鍵控制攝像機的視角左右上下調節;明天,補齊。[有諸多參考,著實是需要多多加油的]
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class CameraMove : MonoBehaviour { public Vector3 target; private Vector3 offset; private bool IsControlMove = true; private float _xAngles = 0.0f; private float _yAngles = 0.0f; private float m_xAngles = 0.0f; private float m_yAngles = 0.0f; private float m_xSpeed = 100f; private float m_ySpeed = 100f; //Limit private float m_xMinValue = -15f; private float m_xMaxValue = 15; private float m_yMinValue = -15; private float m_yMaxValue = 15; void Awake() { //Init Vector3 myCameraAngles = transform.eulerAngles; _xAngles = myCameraAngles.y; _yAngles = myCameraAngles.x; m_xAngles = myCameraAngles.y; m_yAngles = myCameraAngles.x; offset = transform.position - target; } void LateUpdate() { if (IsControlMove) { if (Application.platform == RuntimePlatform.WindowsEditor) { //Debug.LogError(111111111); if (Input.GetMouseButton(0)/*&&!EventSystem.current.IsPointerOverGameObject()*/) { m_xAngles -= Input.GetAxis("Mouse X") * m_xSpeed * 0.02f; m_xAngles = Mathf.Clamp(m_xAngles, m_xMinValue, m_xMaxValue); m_yAngles += Input.GetAxis("Mouse Y") * m_ySpeed * 0.02f; m_yAngles = Mathf.Clamp(m_yAngles, m_yMinValue, m_yMaxValue); var rotation = Quaternion.Euler(m_yAngles, m_xAngles, 0); Vector3 position = rotation * offset + target; transform.rotation = rotation; transform.position = position; } } else if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer) { } } } }
unity windowEditor平臺下鼠標左鍵控制攝像機的視角