“ Vector3”不包含“输入”错误的定义

时间:2019-01-08 18:08:06

标签: c# unity3d

  

“ 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;
    }
}

2 个答案:

答案 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