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