我使用下面的代码在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 Core:3.3.29.10(.net35)
> AWS SDK GameLift:3.3.12.29(.net35)
更新:
AWS开发工具包依赖于System.ConfigurationManager,这在Unity3d项目中似乎不可用.这似乎是NullReferenceException的根本原因.
最佳答案 请参考这个
answer,它完全解决了这个问题.