Unity3d 该名称在当前上下文中不存在,但I';I’我把我的书放在课堂上了

Unity3d 该名称在当前上下文中不存在,但I';I’我把我的书放在课堂上了,unity3d,Unity3d,代码: 使用UnityEngine; 公共课跑步者:单行为{ 公共静态浮动距离; 私有静态int提升; 公众浮标加速; 公共矢量3加速,跳跃速度; 公众游戏者; 公开浮动高分=0f; 私人楼宇触摸平台; 专用矢量3起始位置; 无效开始(){ GameEventManager.GameStart+=GameStart; GameEventManager.GameOver+=GameOver; startPosition=transform.localPosition; renderer.enabl

代码:

使用UnityEngine;
公共课跑步者:单行为{
公共静态浮动距离;
私有静态int提升;
公众浮标加速;
公共矢量3加速,跳跃速度;
公众游戏者;
公开浮动高分=0f;
私人楼宇触摸平台;
专用矢量3起始位置;
无效开始(){
GameEventManager.GameStart+=GameStart;
GameEventManager.GameOver+=GameOver;
startPosition=transform.localPosition;
renderer.enabled=false;
rigidbody.IsKinetic=真;
启用=错误;
}
无效更新(){
if(Input.GetMouseButtonDown(0)){
if(触摸平台){
刚体.附加力(跳跃速度,力模式.速度变化);
触摸平台=错误;
}
否则如果(提升>0){
刚体.AddForce(boostVelocity,ForceMode.VelocityChange);
助推器-=1;
GUIManager.SetBoosts(boosts);
}
}
距离=transform.localPosition.x;
GUIManager.SetDistance(行驶距离);
if(transform.localPosition.y

我得到一个“变量距离”在当前上下文中不存在,但我在类中定义了该变量,因此它就存在了。它怎么了?

你试过重新启动Unity吗?您的代码似乎工作正常

好的,您还没有在开始时初始化它,所以可能就是这样。

只是要澄清一下,带箭头的线就是错误指向的线,对吗?distanceTraveled是静态的,您必须以
Runner.distanceTraveled
好的,我已经用Runner.distanceTraveled替换了这两条线。distanceTraveled仍然会出现错误(对于相同的线)。给出了什么?你还没有初始化它。在声明“=0.0f”以将其初始化为零时,请尝试添加“=0.0f”。另外,我只是猜测,您可能不希望它是一个静态变量。尝试过,没有运气:(可能是什么?错误消息是“名称”distance“在当前上下文“distance”中不存在?您没有可变的距离..这是您代码的最终版本吗?我知道,对吗?这不会接近最终版本,但我没有任何名为“distance”的内容,错误链接到(44,46)你说你有一个错误,你的代码中不存在一个不存在的变量…你发布的内容没有给我一个语法错误。我建议关闭monodevelop/vs,重新导入并重新同步脚本。很清楚,cs名称后面的(44,46)是行号,对吗?
using UnityEngine;

public class Runner : MonoBehaviour {

    public static float distanceTraveled;
    private static int boosts;
    public float acceleration;
    public Vector3 boostVelocity, jumpVelocity;
    public float gameOverY;
    public float highScore = 0f;

    private bool touchingPlatform;
    private Vector3 startPosition;

    void Start () {
        GameEventManager.GameStart += GameStart;
        GameEventManager.GameOver += GameOver;
        startPosition = transform.localPosition;
        renderer.enabled = false;
        rigidbody.isKinematic = true;
        enabled = false;
    }

    void Update () {
        if(Input.GetMouseButtonDown(0)){
            if(touchingPlatform){
                rigidbody.AddForce(jumpVelocity, ForceMode.VelocityChange);
                touchingPlatform = false;
            }
            else if(boosts > 0){
                rigidbody.AddForce(boostVelocity, ForceMode.VelocityChange);
                boosts -= 1;
                GUIManager.SetBoosts(boosts);
            }
        }
        distanceTraveled = transform.localPosition.x;
        GUIManager.SetDistance(distanceTraveled);

        if(transform.localPosition.y < gameOverY){
            GameEventManager.TriggerGameOver();
        }
        // the bit i car about                     <----------------------
        if(distanceTraveled > highScore) {
            highScore = distanceTraveled;
        }

    }

    void FixedUpdate () {
        if(touchingPlatform){
            rigidbody.AddForce(acceleration, 0f, 0f, ForceMode.Acceleration);
        }
    }

    void OnCollisionEnter () {
        touchingPlatform = true;
    }

    void OnCollisionExit () {
        touchingPlatform = false;
    }

    private void GameStart () {
        boosts = 0;
        GUIManager.SetBoosts(boosts);
        distanceTraveled = 0f;
        GUIManager.SetDistance(distanceTraveled);
        transform.localPosition = startPosition;
        renderer.enabled = true;
        rigidbody.isKinematic = false;
        enabled = true;
    }

    private void GameOver () {
        renderer.enabled = false;
        rigidbody.isKinematic = true;
        enabled = false;
    }

    public static void AddBoost(){
        boosts += 1;
        GUIManager.SetBoosts(boosts);
    }
}