1. 程式人生 > >unity windowEditor平臺下鼠標左鍵控制攝像機的視角

unity windowEditor平臺下鼠標左鍵控制攝像機的視角

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平臺下鼠標左鍵控制攝像機的視角