我正在设计一款游戏,其中一项基本功能是加载格式如下的文本文件:
11111111111-
00200000001-
10202220101-
10001010101-
11101010101-
10001010101-
11111011101-
10001000101-
10111110101-
10000000000-
11111111111
文件中的每个整数都将与游戏中的特定预制件相关。因此,如果整数为1,则程序将实例化“砖”预制件;如果整数为2,则程序将实例化“ brokenBrick”预制件;如果整数为0,则不会产生任何东西。
到目前为止,我有:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
class Instantiate : MonoBehaviour
{
public GameObject Brick = null;
public GameObject brokenBrick = null;
private string TempLoad;
private string IDChar;
void Start()
{
int x = 0;
int y = 0;
TempLoad = System.IO.File.ReadAllText(@"\Assets\Resources\Worlds\lvl1.txt");
foreach (char c in TempLoad)
{
IDChar = TempLoad[c].ToString();
if (IDChar == "1")
{
Instantiate(Brick, new Vector2(x, y), Quaternion.identity);
x += 1;
}
else if (IDChar == "2")
{
Instantiate(brokenBrick, new Vector2(x, y), Quaternion.identity);
x += 1;
}
else if (IDChar == "0")
{
x += 1;
}
else if(IDChar == "-")
{
y += 1;
}
}
}
}
我将此附加到我的游戏对象上,并将预制件拖到游戏对象的实例化脚本中的各个部分中。但是什么也没有产生。我不确定为什么即使程序应该实例化预制件,也没有产生任何东西?
答案 0 :(得分:0)
确保您的代码正在输入条件块。
if (IDChar == "1")
{
Debug.Log("1 detected");
Instantiate(Brick, new Vector2(x, y), Quaternion.identity);
x += 1;
}
另外,使用string.Equals(string)
进行值比较,而使用==
运算符作为参考比较。
if (IDChar.Equals("1"))
{
Instantiate(Brick, new Vector2(x, y), Quaternion.identity);
x += 1;
}