0

我正在尝试让我的 Xbox 控制器在 Unity 中工作。我使用了这个视频:http ://www.youtube.com/watch?v=J8HaAyLzPh4

编写脚本后,我收到以下错误:

Assets/XBox360ControllerScript.cs(88,14): error CS0111: A member 
`XBox360ControllerScript.Update()' is already defined. 
Rename this member or use different parameter types.

这是我的代码:

using UnityEngine;
using System.Collections;

public class XBox360ControllerScript : MonoBehaviour 
{

    // These are used to modify player movent
    float PlayerMovementSpeed = 30;
    float PlayerRotationSpeed = 100;

    // Seperating Movement and Button inputs into different functions is easier for debugging
    void Update ()
    {
        Movement();
        UserInputs();
    }

    /// <summary>
    /// This function handles movement calculations. You can adjust the code to work with different AXES if preferred.
    /// Right Thumbstick uses the 4th and 5th Input Joystick Axes.
    /// Left Thumbstick uses the X and Y Input Joystick Axes.
    /// For movement the Vertical Axis is read from moving the LEFT THUMBSTICK up and down, 
    /// and the Horizontal Axis is read from moving the LEFT THUMBSTICK left and right.
    /// Rotation is read from the RIGHT THUMBSTICK
    /// </summary>
    void Movement()
    {
        //This line is for vertical movement, using the Z AXIS
        transform.Translate(0,0,Input.GetAxis("Vertical") * Time.deltaTime * PlayerMovementSpeed);

        //This line is for horizontal movement, using the X AXIS. When combined with vertical movement it can be used for strafing.
        transform.Translate(Input.GetAxis("Horizontal") * Time.deltaTime * PlayerMovementSpeed, 0, 0);

        //This line if for rotation, using the Y AXIS
        transform.Rotate(0,Input.GetAxis("RightStick") * Time.deltaTime * PlayerRotationSpeed,0);
    }

    /// <summary>
    /// This function handles the Inputs from the buttons on the controller
    /// </summary>
    void UserInputs()
    {
        if(Input.GetButtonDown("XBox360 A"))
            Debug.Log("A Button");
        if(Input.GetButtonDown("XBox360 B"))
            Debug.Log("B Button");
        if(Input.GetButtonDown("XBox360 X"))
            Debug.Log("X Button");
        if(Input.GetButtonDown("XBox360 Y"))
            Debug.Log("Y Button");
        if(Input.GetButtonDown("XBox360 LB"))
            Debug.Log("LB Button");
        if(Input.GetButtonDown("XBox360 RB"))
            Debug.Log("RB Button");
        if(Input.GetButtonDown("XBox360 Back"))
            Debug.Log("Back Button");
        if(Input.GetButtonDown("XBox360 Start"))
            Debug.Log("Start Button");
        if(Input.GetButtonDown("XBox360 Leftstick"))
            Debug.Log("Leftstick Button");
        if(Input.GetButtonDown("XBox360 Rightstick"))
            Debug.Log("Rightstick Button");

        //Triggers are read from the 3rd JOystick Axis and read from a Sensitivity rating from -1 to 1
        if(Input.GetAxis("XBox360 Triggers") > 0.001)
            Debug.Log("Right trigger");
        if(Input.GetAxis("XBox360 Triggers") < 0)
            Debug.Log("Left trigger");

        //The Dpad is read from the 6th and 7th Joystick Axes and from a Sensitivity rating from -1 to 1
        if(Input.GetAxis("XBox360 Dpad Horizontal") > 0.001)
            Debug.Log("DPAD right button");
        if(Input.GetAxis("XBox360 Dpad Horizontal") < 0)
            Debug.Log("DPAD left button");
        if(Input.GetAxis("XBox360 Dpad Vertical") > 0.001)
            Debug.Log("DPAD up button");
        if(Input.GetAxis("XBox360 Dpad Vertical") < 0)
            Debug.Log("DPAD down button");
    }

    // Use this for initialization
    void Start () 
    {

    }

    // Update is called once per frame
    void Update () 
    {

    }
}

它与 youtube 视频中的完全一样......我怎样才能修复错误/让我的控制器工作。

4

1 回答 1

2
// Seperating Movement and Button inputs into different functions is easier for debugging
void Update ()
{
    Movement();
    UserInputs();
}

// Update is called once per frame
void Update () 
{
}

是矛盾的。您只能在类中定义一个具有相同参数(在本例中为无)的 Update() 方法。

于 2012-12-12T18:37:10.813 回答