首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tilemaps -当重写StartUp时,返回base.StartUp做什么?

Tilemaps -当重写StartUp时,返回base.StartUp做什么?
EN

Stack Overflow用户
提问于 2021-04-29 12:32:24
回答 1查看 135关注 0票数 1

在我的情况下,我正在基于StartUp中的一个变量实例化预制件

代码语言:javascript
复制
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呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-29 20:33:01

查看TileBase的源代码

代码语言:javascript
复制
[RequiredByNativeCode]
public virtual bool StartUp(Vector3Int position, ITilemap tilemap, GameObject go) { return false; }

默认实现似乎返回false。实现TileBase的Tile类不覆盖StartUp,因此不会更改false的默认返回值。

根据手册,返回值指示调用是否成功。

代码语言:javascript
复制
Returns
bool Whether the call was successful.

我认为,当代码成功运行时(所有对象都被生成,并且没有抛出异常),您应该返回true;如果发生了错误,则返回false。不过,我不知道返回值在哪里使用。

现在,我只会回到真实,忘记它。(如果不起作用,则返回base.StartUp(..))

代码语言:javascript
复制
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源代码的链接。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67317443

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档