在我的情况下,我正在基于StartUp中的一个变量实例化预制件
public override bool StartUp(Vector3Int position, ITilemap iTilemap, GameObject go)
{
if (isSingularTile)
{
GameObject clone1 = Instantiate(prefab, go.transform);
clone1.transform.position = new Vector3(position.x, position.y, position.z);
return base.StartUp(position, iTilemap, go);
}
return base.StartUp(position, iTilemap, go);
}return.StartUp(position, iTilemap, go);行做了什么特别的事情吗,还是我也可以返回true呢?
发布于 2021-04-29 20:33:01
查看TileBase的源代码
[RequiredByNativeCode]
public virtual bool StartUp(Vector3Int position, ITilemap tilemap, GameObject go) { return false; }默认实现似乎返回false。实现TileBase的Tile类不覆盖StartUp,因此不会更改false的默认返回值。
根据手册,返回值指示调用是否成功。
Returns
bool Whether the call was successful.我认为,当代码成功运行时(所有对象都被生成,并且没有抛出异常),您应该返回true;如果发生了错误,则返回false。不过,我不知道返回值在哪里使用。
现在,我只会回到真实,忘记它。(如果不起作用,则返回base.StartUp(..))
public override bool StartUp(Vector3Int position, ITilemap iTilemap, GameObject go)
{
if (isSingularTile)
{
GameObject clone1 = Instantiate(prefab, go.transform);
clone1.transform.position = new Vector3(position.x, position.y, position.z);
}
return true;
}如果您想进一步挖掘,这里有一个指向托管Tilemaps源代码的链接。
https://stackoverflow.com/questions/67317443
复制相似问题