“ Assets / MovePlayer.cs(27,70):错误CS1061:'Vector3'不包含'Input'的定义,并且找不到可访问的扩展方法'Input'接受类型为'Vector3'的第一个参数(您是否缺少using指令或程序集引用?)”
我正在做一个小游戏,我一直在尝试增加相机的相对运动,并且不断向我显示上面的错误。
这是我的参考代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MovePlayer : MonoBehaviour
{
public Transform cam;
Vector2 input;
void Update()
{
input = new Vector2(Input.GetAxis("Horizontal"), Input.GetAxis("Vertical"));
input = Vector2.ClampMagnitude(input,1);
Vector3 camF = cam.forward;
Vector3 camR = cam.right;
camF.y = 0;
camR.y= 0;
camF = camF.normalized;
camR = camR.normalized;
transform.position += (camF*input.y + camR.input.x)*Time.deltaTime*5;
}
}
如果您也想在主相机中添加一个CameraLook
组件。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraLook : MonoBehaviour {
Vector2 rotation = new Vector2 (0, 0);
public float speed = 3;
void Update () {
rotation.y += Input.GetAxis ("Mouse X");
rotation.x += -Input.GetAxis ("Mouse Y");
transform.eulerAngles = (Vector2)rotation * speed;
}
}
答案 0 :(得分:1)
这可能需要为transform.position += (camF*input.y + camR * input.x)*Time.deltaTime*5;
您正试图访问camR.input,它不是作为Vector3的camR的属性。我认为您打算将camF乘以input.x。
仅供参考,您可以在Visual Studio中双击错误消息,或单击monodevelop,这将带您进入错误行。
答案 1 :(得分:1)
您有camR.input.x
,这意味着它正在尝试访问名为camR
的{{1}}(是Vector3
)的成员,该成员不存在。
您打算写input
。