using UnityEngine;
using System.Collections;
public class GameBoardScript : MonoBehaviour {
public int m_size;
public GameObject m_PuzzlePiece;
void Start() {
GameObject temp;
for (int i = 0; i < m_size; i++) {
for (int j = 0; j<m_size; j++) {
temp = (GameObject)Instantiate(m_PuzzlePiece, new Vector2(i*400/m_size, j*400/m_size), Quaternion.identity);
}
}
}
}
答案 0 :(得分:2)
您收到此警告的原因是您分配变量。但是你没有使用 temp
的变量。在变量减速后对变量做任何事情,警告就会消失!例如:
for (int i = 0; i < m_size; i++)
{
for (int j = 0; j<m_size; j++)
{
temp = (GameObject)Instantiate(m_PuzzlePiece, new Vector2(i*400/m_size, j*400/m_size), Quaternion.identity);
temp.SetActive(false); // this is an arbitrary use of temp. don't actually do this
}
}
Joe Blow是正确的,你应该只调用instantiate而不指定它返回一个变量,如果你不打算事后对实例化的GameObject
做任何事情。但是,只是声明内部for循环的局部变量仍将不删除警告,如果仍然无法使用它。
请注意编译器无法确定m_size
变量可能为0并且可能无法到达内部for循环。发生警告是因为行
temp = (GameObject)Instantiate(m_PuzzlePiece, new Vector2(i*400/m_size, j*400/m_size), Quaternion.identity);
是分配,而不是变量temp
的使用。您可以根据需要多次分配它,您仍然会收到相同的警告。您需要使用,否则将GameObject
中返回的Instantiate
分配给变量。