自从一个月以来,我有空的时候几乎不去学习教程和学习C#,即使我的技能仍然很差,我也越来越有信心。
现在,我挑战自己将2个基于网格的教程混合在一起,使其具有一个形状和另一个性能,而我真的很沮丧,因为我只是刚开始,已经陷入困境。我知道由于它们的逻辑,混合代码并不总是一件容易的事,但是我却遇到了错误...伙计们,我发誓我试图自己解决它。是的,我摘下了所有混音,只保留了所涉集团的错误,然后继续。
看一下: -Assets \ Scripts \ Grid.cs(28,37):错误CS0103:名称“ x”在当前上下文中不存在 -Assets \ Scripts \ Grid.cs(28,40):错误CS0103:名称“ z”在当前上下文中不存在 我有6次都用3行代码压缩了。。。它们看起来很荒谬! 请杀了我。
以下是屏幕截图,以防万一: grrr
这是代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Grid : MonoBehaviour
{
public int gridX, gridZ;
private int[,] gridArray;
private float cellSize;
void Start()
{
Grid grid = new Grid(gridX, gridZ, 1f);
}
public Grid(int gridX, int gridZ, float cellSize)
{
this.gridX = gridX;
this.gridZ = gridZ;
this.cellSize = cellSize;
gridArray = new int[gridX, gridZ];
for(int x = 0; x < gridArray.GetLength(0); x++) ;
{
for(int z = 0; z < gridArray.GetLength(1); z++) ;
{
Utils.CreateWorldText(gridArray[x, z].ToString(), null, GetWorldPosition(x, z) + new Vector3(cellSize, 0, cellSize) * .5f, 10, Color.white, TextAnchor.MiddleCenter);
Debug.DrawLine(GetWorldPosition(x, z), GetWorldPosition(x, z + 1), Color.white, 3600f);
Debug.DrawLine(GetWorldPosition(x, z), GetWorldPosition(x + 1, z), Color.white, 3600f);
}
}
Debug.DrawLine(GetWorldPosition(0, gridZ), GetWorldPosition(gridX, gridZ), Color.white, 3600f);
Debug.DrawLine(GetWorldPosition(gridX, 0), GetWorldPosition(gridX, gridZ), Color.white, 3600f);
}
private Vector3 GetWorldPosition(int x, int z)
{
return new Vector3(x, 0, z) * cellSize;
}
}
public class Utils [...]
这个故事中最糟糕的是,我已经完成了该教程,并且第一次没有对该团体有任何疑问。试图粘贴它,问题仍然存在,已检查,已检查²等...没办法。有什么想法吗?
答案 0 :(得分:3)
for(int x = 0; x < gridArray.GetLength(0); x++) ; <===
for(int z = 0; z < gridArray.GetLength(1); z++) ; <===
for(int x = 0; x < gridArray.GetLength(0); x++)
{
for(int z = 0; z < gridArray.GetLength(1); z++)
{
Utils.CreateWorldText(gridArray[x, z].ToString(), null, GetWorldPosition(x, z) + new Vector3(cellSize, 0, cellSize) * .5f, 10, Color.white, TextAnchor.MiddleCenter);
Debug.DrawLine(GetWorldPosition(x, z), GetWorldPosition(x, z + 1), Color.white, 3600f);
Debug.DrawLine(GetWorldPosition(x, z), GetWorldPosition(x + 1, z), Color.white, 3600f);
}
}