Make game module name dynamic and delay sending messages until we know it.

This commit is contained in:
Ian Gulliver
2014-04-26 00:03:36 -04:00
parent 20dc706f22
commit 23c79998c8

View File

@@ -9,20 +9,17 @@
<div id="unityPlayer"></div> <div id="unityPlayer"></div>
<script type="text/javascript"> <script type="text/javascript">
var gameObject; var gameObject;
var gameModuleName;
var messageQueue = []; var messageQueue = [];
var onUnityLoad = function(obj) { var onUnityLoad = function(obj) {
gameObject = obj.ref; gameObject = obj.ref;
while (messageQueue.length) {
var item = messageQueue.shift();
sendUnityMessage(item[0], item[1]);
}
}; };
var sendUnityMessage = function(funcName, msg) { var sendUnityMessage = function(funcName, msg) {
msg = msg || ''; msg = msg || '';
if (gameObject) { if (gameObject && gameModuleName) {
gameObject.SendMessage('Cosmopolite', funcName, msg); gameObject.SendMessage(gameModuleName, funcName, msg);
} else { } else {
messageQueue.shift([funcName, msg]); messageQueue.shift([funcName, msg]);
} }
@@ -42,6 +39,18 @@ var doLogout = function() {
} }
}; };
var registerGameObject = function(name) {
gameModuleName = name;
while (messageQueue.length) {
var item = messageQueue.shift();
sendUnityMessage(item[0], item[1]);
}
};
var pluginDidLoad = function() {
// Called by the Unity example code, but not used.
};
unityObject.embedUnity( unityObject.embedUnity(
'unityPlayer', 'unityPlayer',
'debug.unity3d', 'debug.unity3d',