0
总之,我注意到Unity(我使用的一个简单的游戏开发平台)中的很多预定义函数将返回一个值(如坐标),或者如果满足某些条件将返回false。我试图自己做这个,但是编译器一直在寻找一个作为返回类型的转换,并且不允许我返回布尔值(因为函数被声明为返回一个转换)。我想要一个函数返回一个特定的值,否则返回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;
}
当函数'失败'它的任务时,我该如何返回某个数据类型,但也有我的函数返回布尔(假)?
即使预先定义的函数应该在某处记录。也许你想看看这样的行为的一些例子。我不属于Unity,但你在这里描述的听起来很奇怪。你确定没有一些**隐式**转换可以将诸如“null”之类的东西在封面下翻译为假吗? – GhostCat
@GhostCat答案在我的代码中一直都是这样。我不明白“out”关键字的基本概念。某些预定义函数(如“Physics.Raycast()”)将根据是否满足某些条件返回true或false,但这些函数还会通过带有“out”关键字的另一个变量传递额外信息。有效返回布尔值和一些额外的信息。 –