我使用以下代码在Unity3d中创建GameClient:
AmazonGameLiftClient client =
new AmazonGameLiftClient("accessKeyId",
"accessKey",
RegionEndpoint.CNNorth1);
上面的代码是Awake((中的第一行,没有任何其他前导代码。
我得到以下错误:
NullReferenceException: Object reference not set to an instance of an object
Amazon.CSMSection.get_CSMEnabled ()
Amazon.Util.CSMConfig.Configure (Amazon.CSMSection section)
Amazon.Util.Internal.RootConfig..ctor ()
Amazon.AWSConfigs..cctor ()
Rethrow as TypeInitializationException: An exception was thrown by the type initializer for Amazon.AWSConfigs
Amazon.Runtime.ClientConfig..ctor ()
Amazon.GameLift.AmazonGameLiftConfig..ctor ()
Amazon.GameLift.AmazonGameLiftClient..ctor (System.String awsAccessKeyId, System.String awsSecretAccessKey, Amazon.RegionEndpoint region)
有什么事我忘了做吗?我认为根本原因是我没有将app.config放在正确的位置。所以AWS SDK没有正确初始化,但我还没有找到任何使用Unity3d作为Amazon GameLift客户端的教程:(
我的环境:
- 操作系统:Mac OS X 10.14.1
- Unity3d:2018.2.12f1
- AWS SDK核心:3.3.29.10(.net35(
- AWS SDK GameLift:3.3.12.29(.net35(
更新:AWS SDK依赖于System.ConfigurationManager,这在Unity3d项目中似乎不可用。这似乎是NullReferenceException的根本原因。
请参考这个答案,它完全解决了这个问题。