我是 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:“级别”不包含“实例”的定义
答案 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
的类编写了另一个脚本,其中包含单身汉。
您可能刚刚错过了它,或者指南还没有介绍该部分。