错误CS0117:“级别”不包含“实例”的定义

时间:2019-08-12 07:40:22

标签: c# unity3d

我是 C#的新手。想要开发游戏。 Unity更改了某些语法,例如Application。无法解决错误。检查了所有拼写。实例在这里如何工作。

尝试在Unity文档和google中搜索。它来自我正在学习的书。可在Google上找到。如果我们输入代码,它将得到这本书。

Blockquote

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using RunAndJump;
 using UnityEditor;

    [ExecuteInEditMode] public class SnapToGridTest : MonoBehaviour {
 // Update is called once per frame
    private void Update()
     {
         Vector3 gridCoord = 
              Level.Instance.WorldToGridCoordinates(transform.position);
         transform.position = 
              Level.Instance.GridToWorldCoordinates((int)gridCoord.x,
         (int)gridCoord.y);
     }

     private void OnDrawGizmos()
     {
         Color oldColor = Gizmos.color;
         Gizmos.color = (Level.Instance.IsInsideGridBounds(transform.position)) 
                         ? Color.green
                                     : Color.red;
         Gizmos.DrawCube (transform.position, Vector3.one * Level.GridSize);
         Gizmos.color = oldColor;
     } }

Blockquote

  

错误CS0117:“级别”不包含“实例”的定义

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试将Level视为Singleton,但尚未实现Level的单例。

您可以这样实现Singleton:

private static Level instance;

public static Level Instance 
{
    get 
    {
        if (instance == null)
        {
            instance = FindObjectOfType<Level>();
        }

        return instance
     }
}

当然,如果在当前场景中没有附加GameObject的{​​{1}}组件,它将无法正常工作。

此外,您目前正在遵循的教程书似乎已将Level设置为部分类。
该指南可能为部分Level的类编写了另一个脚本,其中包含单身汉。
您可能刚刚错过了它,或者指南还没有介绍该部分。