我希望函数返回某个值,否则返回false

时间:2016-10-16 05:55:19

标签: function unity3d return return-type

简而言之,我注意到Unity(我使用的一个简单的游戏开发平台)中的许多预定义函数将返回一个值(例如坐标),或者如果满足某些条件则返回false。我自己试图这样做,但是编译器总是在寻找变换作为返回类型,并且不允许我返回一个布尔值(因为声明该函数返回一个变换)。

    Transform SelectObject() {
    RaycastHit hit;
    Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    if (Physics.Raycast (ray, out hit, unitLayer))
        return hit.transform;
    else
        return false;
}

如何返回某种数据类型,但当函数“失败”时,我的函数也返回boolean(false)。它的任务?

1 个答案:

答案 0 :(得分:1)

我暂时没有使用Unity,但我认为你只需要这样做:

Transform SelectObject() {
    RaycastHit hit;
    Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
    if (Physics.Raycast (ray, out hit, unitLayer))
        return hit.transform;
    else
        return null;
}

Unity有一个实用程序,可以将从UnityEngine.Object派生的对象转换为布尔值:如果对象为null,则为false;如果是其他情况,则为true。 这是一个奇怪的事情,但它实际上对我有用。

我认为您可以将Transform对象隐式转换为boolean,如下所示:

bool b = SelectObject();