- Home /
getUnity function not returning unity object in Web Player
I am trying to call a simple C# method from the web code using SendMessage in JavaScript. No matter what I try, I cannot get it to work. I have followed this tutorial to the letter > http://docs.unity3d.com/Manual/UnityWebPlayerandbrowsercommunication.html
Here's my code from the HTML of my Web Build:
u.initPlugin(jQuery("#unityPlayer")[0], "WebBuild.unity3d");
var loadUnity = u.getUnity();
console.log(loadUnity);
loadUnity.SendMessage("Submit", "Test", "");
No matter what I try, SendMessage is always undefined. I can't communicate with Unity.
In Firefox, the console.log returns an HTML element:
<embed width="900" height="600" src="WebBuild.unity3d" type="application/vnd.unity" firstframecallback="UnityObject2.instances[0].firstFrameCallback();" enabledebugging="0" style="display: block; width: 900px; height: 600px;">
In IE 11, the console.log returns this slightly different HTML element:
<object classid="clsid:444785F1-DE89-4295-863A-D46C3A781394" style="width: 900px; height: 600px; display: block;"><param name="src" value="WebBuild.unity3d" abp="6"></param><param name="firstFrameCallback" value="UnityObject2.instances[0].firstFrameCallback();" abp="7"></param><param name="enableDebugging" value="0" abp="8"></param></object>
What is up with this? Shouldn't this be returning a JavaScript object that includes the method SendMessage()? Why is getUnity()
returning an HTML element? I cannot use an HTML element. This is extremely frustrating. I've spent upwards of 4 days googling and trying to figure this out.
Help is greatly appreciated.
Answer by alankemp · Mar 31, 2016 at 12:37 PM
You are calling SendMessage too soon, you need to give the plugin time to load and finish initializing.
Try putting a button on your webpage and calling SendMessage from there.