C# 如何在Unity中使用transform.localEularAngles
你好,我是Unity的新手,我正在尝试制作一个简单的3D第一人称射击游戏。为了做到这一点,我试图让相机跟随鼠标光标。为此,我想使用根据鼠标生成的旋转设置localEularAngles 以下是我的CameraController脚本的代码:C# 如何在Unity中使用transform.localEularAngles,c#,unity3d,C#,Unity3d,你好,我是Unity的新手,我正在尝试制作一个简单的3D第一人称射击游戏。为了做到这一点,我试图让相机跟随鼠标光标。为此,我想使用根据鼠标生成的旋转设置localEularAngles 以下是我的CameraController脚本的代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraController : MonoBehaviour {
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraController : MonoBehaviour
{
public float maximumY = 360f;
public float minimumY = -360f;
public float maximumX = 60f;
public float minimumX = -60f;
public float sensitivityX = 15f;
public float sensitivityY = 15f;
public Camera cam;
float rotationY;
float rotationX;
float offset;
// Start is called before the first frame update
void Start()
{
offset = cam.transform.position.y - transform.position.y;
}
// Update is called once per frame
void Update() {
rotationY += Input.GetAxis ("Mouse X") * sensitivityY;
rotationX += Input.GetAxis ("Mouse Y") * sensitivityX;
rotationX = Mathf.Clamp(rotationX, minimumX, maximumX);
transform.localEularAngles = new Vector3(0, rotationY, 0);
cam.transform.localEularAngles = new Vector3(-rotationX, rotationY, 0);
cam.transform.position = new Vector3(cam.transform.position.x,
cam.transform.position.y + offset, cam.transform.position.z);
}
}
这背后的想法来自于此链接的教程:
但是,当尝试编译时,我得到错误:Assets\CameraController.cs(36,31):错误CS1061:“Transform”不包含“localEularAngles”的定义,并且找不到接受“Transform”类型的第一个参数的可访问扩展方法“localEularAngles”(是否缺少using指令或程序集引用?)
错误发生在我使用transform.localEularAngles的两个位置。事实上,我还没有找到以编译方式编写transform.localEularAngles的方法,这让我相信它可能会被弃用,但更可能的是我遗漏了一些基本的东西。只是一个简单的拼写错误,应该是
localEularAngles
transform.localEulerAngles=新矢量3(0,旋转,0);
cam.transform.localEulerAngles=新矢量3(-rotationX,rotationY,0);
cam.transform.position=新矢量3(cam.transform.position.x,
凸轮变换位置y+偏移,凸轮变换位置z);
是不是localeulangles
?注意Euler
中的e
。花了几个小时在一个该死的拼写错误上!先生,你是我的英雄!我们都去过!我会写一个答案。