如何在使用Unity Facebook SDK时更改背景图像

时间:2013-10-23 13:45:46

标签: facebook unity3d facebook-unity-sdk

我正在使用Unity Facebook SDK在Facebook上设置我的Unity游戏。

我使用“启用Unity集成”设置应用程序,游戏可以根据需要运行。

我想将网页的背景图像从纯白色更改为位图图像。

我通常会编辑HTML来执行此操作,但我无法通过SDK访问它。

我尝试使用Application.ExternalEval将一些Javascript注入HTML页面,类似于:

var content = document.getElementById("pagelet_canvas_content");
content.style.backgroundImage = "url('background.jpg')";

但我无法访问Chrome调试器告诉我的任何元素。

有谁知道如何个性化Facebook页面?

2 个答案:

答案 0 :(得分:1)

pagelet_canvas_content位于您无法控制的父框架中。您的游戏在iframe中运行。尝试抓住body元素并修改它。

$('body').css('backgroundImage', 'url(background.jpg)');

(或使用document.getElementsByTagName('body')等。)

您可能还想将画布宽度和高度设置为流体以填充facebook chrome中的空间,然后您可能希望将播放器置于中心位置(此功能很快就会出现在SDK中,因此您不应该将来搞砸任何一件事。)

如果您有任何问题,请告诉我,感谢您尝试使用SDK!

答案 1 :(得分:0)

这是一些代码,用于在窗口调整大小时居中并调整统一网页播放器的大小。您可以轻松添加javascript来加载背景。一旦Unity应用程序通过Application.ExternalEval加载,就会注入此内容。

window.onresize = function (){
var div = document.getElementById('unityPlayerEmbed');
if ((div.parentNode.offsetHeight+offset)>div.parentNode.parentNode.parentNode.clientHeight){
    div.style.height=(div.parentNode.parentNode.parentNode.clientHeight-offset)+'px';
    div.parentNode.style.height=div.parentNode.parentNode.parentNode.clientHeight+'px';
    div.parentNode.style.width=(div.parentNode.offsetHeight*1.777)+'px';
}else{
    div.parentNode.style.width='100%';
    div.style.height=((div.parentNode.offsetWidth*0.5625)-offset)+'px';
    div.parentNode.style.height=(div.parentNode.offsetWidth*0.5625)+'px';
}