无法隐式转换类型'UnityEngine.Vector2?'到'UnityEngine.Vector2'

时间:2018-02-28 15:50:32

标签: c# unity3d vector

这可能看起来似乎是一个问题,但我正在使用游戏公园。 我正在这个包中发送vector2:

$ bitbake my-custom-image -e | grep ^APPEND= -A1 -B1
#   " quiet rootwait console=ttyS0,115200 console=tty0${@bb.utils.contains("IMAGE_FEATURES", "read-only-rootfs", " ro", "", d)}"
APPEND=" quiet vt.global_cursor_default=0 rootwait console=ttyS0,115200 console=tty0"
#

我从数据包中得到它:

data.SetVector2(1, new Vector2(1.0f, 1.0f, 1.0f)); 

但是我收到以下错误: 无法隐式转换类型UnityEngine.Vector2?到UnityEngine.Vector2。

1 个答案:

答案 0 :(得分:5)

'?'意味着它是一个可空的"类型。要转换为Vector2,请执行

Vector2 a = _packet.Data.GetVector2(1).Value;

以下是MS上可空类型的链接:https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/nullable-types/

Nullable类型还可以选择使用HasValue属性检查值是否为null。如果您不确定GetVector2实际上是否返回了有效值,则应检查HasValue并做出适当回应。