Unity不允许我使用Screen.safeArea

时间:2018-03-13 20:56:56

标签: unity3d screen iphone-x

我正在尝试调整游戏中的UI,使其适合iPhone X的屏幕。

在我的代码中,我尝试编写代码行return Screen.safeArea

然而' safeArea'突出显示为红色,当我用光标悬停在错误上时,会显示一条消息,说明"错误CS0117:' UnityEngine.Screen'不包含' safeArea'"。

的定义

我不明白为什么我会收到此错误,因为根据Unity的文档,UnityEngine.Screen确实包含safeArea的定义。

我为何遇到此错误的任何倾向或想法?

此外,我正在使用Unity 2017.2.0f3

根据以下评论,代码被要求。

private Screen ReturnSafeArea(){return Screen.safeArea}

正如我试图说的那样,代码与它无关。即使在使用Screen.safeArea这个简单的实例中,safeArea也不是UnityEngine.Screen的定义。

enter image description here

enter image description here

将鼠标悬停在safeArea上会显示以下消息

  

"'屏幕'不包含' safeArea"

的定义

2 个答案:

答案 0 :(得分:3)

我相信Screen.safeArea是在2017.2的次要版本中添加的,所以2017.2.0f3不会有它。请在2017.2.1及更新版本中尝试使用您的代码进行确认。文档没有详细说明,这太糟糕了。

答案 1 :(得分:2)

Screen.screenArea的类型为Rect,您的方法定义为返回Screen类型的值

https://docs.unity3d.com/ScriptReference/Screen-safeArea.html

解决此问题的一种方法:

private Rect ReturnSafeArea(){
    return Screen.safeArea;
}

此外,该字段已添加到2017.2.0p1 (Nov 6)中,您在2017.2.0f3 (Oct 3)上。链接是0.2,但0.f3没有自己的页面,所以可能是在同一天或很快之后。