TPH-A 2020-08-27 17:45 采纳率: 0%
浏览 151

Unity脚本代码为什么无法让相机旋转???

Main Camera都get到了,为什么旋转不了???

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
    public Transform m_transform;
    CharacterController m_ch;
    public float speed = 4.0f;
    public float gravity = 5.0f;
    public Transform m_camTransform;
    public Vector3 m_camRot;
    public float m_camHeight = 1.4f;
    public void Start()
    {
        m_transform = transform;
        m_ch = GetComponent<CharacterController>();
        m_camTransform = Camera.main.transform;
        m_camTransform.position = m_transform.TransformPoint(0, m_camHeight, 0);
        m_camTransform.rotation = m_transform.rotation;
        m_camRot = m_camTransform.eulerAngles;
    }

    // Update is called once per frame
    public void Update()
    {
        Control();
    }
    public void Control()
    {
        Vector3 motion = Vector3.zero;
        motion.x = Input.GetAxis("Horizontal") * speed * Time.deltaTime;
        motion.z = Input.GetAxis("Vertical") * speed * Time.deltaTime;
        motion.y -= gravity * Time.deltaTime;
        m_ch.Move(m_transform.TransformDirection(motion));
        float rh = Input.GetAxis("Mouse X");
        float rv = Input.GetAxis("Mouse Y");
        m_camRot.x -= rv;
        m_camRot.y += rh;
        m_camTransform.eulerAngles = m_camRot;
        Vector3 camrot = m_camTransform.eulerAngles;
        camrot.x = 0;
        camrot.y = 0;
        m_camTransform.eulerAngles = camrot;
        m_camTransform.position = m_transform.TransformPoint(0, m_camHeight, 0);
    }
    public void OnDrawGizmos()
    {
        Gizmos.DrawIcon(transform.position, "Spawn.tif");
    }
}

请各位大佬指教...

  • 写回答

1条回答 默认 最新

  • qq_37477275 2020-08-27 18:07
    关注

    之前看过大神做的 亲测有用~
    void Update ()
    {
    if(Input.GetMouseButton(1))
    {
    if (axes == RotationAxes.MouseXAndY)
    {
    // Read the mouse input axis
    rotationX += Input.GetAxis("Mouse X") * sensitivityX;
    rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
    rotationX = ClampAngle (rotationX, minimumX, maximumX);
    rotationY = ClampAngle (rotationY, minimumY, maximumY);

    Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
    Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
    
    transform.localRotation = originalRotation * xQuaternion * yQuaternion;
    

    }
    else if (axes == RotationAxes.MouseX)
    {
    rotationX += Input.GetAxis("Mouse X") * sensitivityX;
    rotationX = ClampAngle (rotationX, minimumX, maximumX);
    Quaternion xQuaternion = Quaternion.AngleAxis (rotationX, Vector3.up);
    transform.localRotation = originalRotation * xQuaternion;
    }
    else
    {
    rotationY += Input.GetAxis("Mouse Y") * sensitivityY;
    rotationY = ClampAngle (rotationY, minimumY, maximumY);
    Quaternion yQuaternion = Quaternion.AngleAxis (rotationY, Vector3.left);
    transform.localRotation = originalRotation * yQuaternion;
    }
    }
    }可以试试~

    评论

报告相同问题?

悬赏问题

  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!