1

我正在使用 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 页面?

4

2 回答 2

1

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

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

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

您可能还想将画布的宽度和高度设置为流体以填充 facebook chrome 内的空间,然后您可能希望将播放器居中(此功能即将在 SDK 中提供,因此您不必纠结未来任何这些)。

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

于 2013-10-23T19:14:06.537 回答
0

这是一些代码,用于在窗口调整大小时居中和调整统一网络播放器的大小。您可以轻松添加 javascript 来加载背景。一旦通过 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';
}
于 2013-11-14T05:19:28.323 回答