C# 意外符号';公共';在创建float时

C# 意外符号';公共';在创建float时,c#,error-handling,symbols,C#,Error Handling,Symbols,我是unity新手,但每当我创建变量时,就会出现一个错误 它显示错误cs1525:意外符号“public” 这是我的剧本 using UnityEngine; using System.Collections; public class move : MonoBehaviour { // Use this for initialization void Start () { public float speed = 3.0f; } /

我是unity新手,但每当我创建变量时,就会出现一个错误

它显示错误cs1525:意外符号“public”

这是我的剧本

using UnityEngine;
using System.Collections;

public class move : MonoBehaviour
{

    // Use this for initialization
    void Start ()
    {
        public float speed = 3.0f;
    }

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

    }
}

类成员应该在类块内部定义,但在方法外部定义


将所有“public”行移到“void Start()”行上方。

类成员应在类块内部定义,但在方法外部定义


将所有“public”行移到“void Start()”行上方。

如Flux和Peter所述,访问修饰符(如public和private)只能应用于类级别的成员。这意味着成员与您的职能处于同一级别

根据您是希望在该类中的任何位置使用速度变量,还是仅在一个函数中使用速度变量,将指定您使用的方法

现在,根据我在游戏编程方面的经验,速度是一个类级变量,您希望能够从其他对象访问该变量

因此,我还要指出,出于一个很好的理由,您应该使用封装。如果在某个时刻您想要更改速度变量的使用方式或计算方式,那么封装将允许您更改该“属性”的实现,而无需修改使用它的其他对象中的代码

e、 g


正如Flux和Peter提到的,访问修饰符(如public和private)只能应用于类级成员。这意味着成员与您的职能处于同一级别

根据您是希望在该类中的任何位置使用速度变量,还是仅在一个函数中使用速度变量,将指定您使用的方法

现在,根据我在游戏编程方面的经验,速度是一个类级变量,您希望能够从其他对象访问该变量

因此,我还要指出,出于一个很好的理由,您应该使用封装。如果在某个时刻您想要更改速度变量的使用方式或计算方式,那么封装将允许您更改该“属性”的实现,而无需修改使用它的其他对象中的代码

e、 g


public
适用于班级成员。不需要将它放在局部变量声明中,而且在任何情况下都是不合法的。决定
speed
是类字段还是局部变量,并相应地声明它。
public
用于类成员。不需要将它放在局部变量声明中,而且在任何情况下都是不合法的。决定您希望
speed
是类字段还是局部变量,并相应地声明它。
public class move : MonoBehaviour
{
    private float speed = 3.0f;

    public void SetSpeed(float newSpeed)
    {
        speed = newSpeed;
    }

    public float GetSpeed()
    {
        return speed;
    }

    // Use this for initialization
    void Start ()
    {
        ...
    }

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