Contenu connexe Similaire à 【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ! Similaire à 【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ! (20) 【第5回】渋谷Unity技術勉強会 - WebPlayer面白いよ!2. 自己紹介
安藤圭吾(あんどう けいご)
@kyusyukeigo
Unity歴�2年
株式会社トップゲート
入社一年目
「Unityライブラリ辞典」執筆
「UnityGames」運営
セミナーもやります
http://tech.topgate.co.jp/seminar/seminar-2012-06-12-unity
12年6月6日水曜日
3. UnityGames (http://www.unitygames.jp)
WebPlayer/Flashで書き出したゲームをプレイできる
是非、訪れてみてください
12年6月6日水曜日
4. アジェンダ
Web上に公開する上で気を付けること
WWW.LoadUnityWeb の有効活用
WebPlayerStreamed とは
12年6月6日水曜日
5. Web上に公開する上で気を付けること
クロスドメイン
WWWクラスは別ドメインとの通信ができない制約
がある
crossdomain.xml配置で解決
crossdomain.xml
<?xml version="1.0"?>
� <cross-domain-policy>
� � <allow-access-from domain="*"/>
� </cross-domain-policy>
配置場所 : ドメインのルート(トップページ)
12年6月6日水曜日
7. Web上に公開する上で気を付けること
unity3dファイルのロード時間
色々詰め込んじゃうと
10MBとか20MBとかになりがち
あんまり人を待たせないほうがいいですよね
容量の大きいデータは何かしら対策が必要
12年6月6日水曜日
9. WWW.LoadUnityWebの有効活用
LoadUnityWeb()
WebPlayer用のunity3dファイルを読み込む(WWWクラスでDL)
LoadUnityWebをするだけの unity3dファイル
unity3dファイル(約10KB) (10MB)
LoadUnityWeb
10MBのファイルをDL DL後、表示
12年6月6日水曜日
10. WWW.LoadUnityWebの有効活用
スクリプトはこんな感じ
using UnityEngine;
public class LoadWebScript : MonoBehaviour
{
� IEnumerator Start ()
� {
� � www = new WWW ("unity3dファイルのURL");
� � while (www.isDone == false) {
� � � yield return new WaitForSeconds(0);
� � � // www.progressを使って何か処理でも
� � }
� � yield return www;
� �
� � www.LoadUnityWeb ();
� }
}
12年6月6日水曜日
11. WWW.LoadUnityWebの有効活用
LoadUnityWeb()でやりたいこと
WebPlayer用のunity3dファイルを読み込む(WWWクラスでDL)
LoadUnityWebをするだけの unity3dファイル
unity3dファイル(約10KB+α) (10MB)
LoadUnityWeb
簡単な操作方法を説明
画像を1枚ペタリ
プレイヤーを操作できる
DL後、表示
余分なアセットは省く
12年6月6日水曜日
12. WWW.LoadUnityWebの有効活用
LoadUnityWeb()で出来ること
PlayerPrefsのデータのやり取りが可能
LoadUnityWebをするだけの unity3dファイル
unity3dファイル(約10KB) (10MB)
LoadUnityWeb
PlayerPrefs.SetString PlayerPrefs.GetString
12年6月6日水曜日
13. WWW.LoadUnityWebの有効活用
LoadUnityWeb()の問題点
CPU使用率がグングン↑↑
私のMBPでCPU使用率40%(最大)
LoadUnityWeb()と言うよりWWWでのDLが問題
PCの性能次第ではブラウザがフリーズしてしまうかも
12年6月6日水曜日
14. WWW.LoadUnityWebの有効活用
LoadUnityWeb()の解決策?
ファイルを細かく分けてみる
LoadUnityWebをするだけ unity3dファイ unity3dファイ
のunity3dファイル(約10KB) ル(5MB) ル(5MB)
LoadUnityWeb LoadUnityWeb
PlayerPrefs.GetString PlayerPrefs.GetString
PlayerPrefsのデータのやり取りが可能
ですが
重複するアセットが多い場合には向いていない
12年6月6日水曜日
15. WebPlayerStreamedとは
先程のLoadUnityWeb()の使い方を自動でやっ
てくれるもの(しかも1つのunity3dファイルで!!)
考え方は同じ
とりあえず1番目のシーンを表示させようっていう考え方
あれ、LoadUnityWebいらないじゃん...
12年6月6日水曜日
16. WebPlayerStreamedとは
段階的にシーンを読み込んでいく
とりあえず1番目のシーン読み込んで表示する(2番目以降のシーンを裏でDL)
DLシーン優先度
2番目 > 3番目 > 4番目...��
CPU使用率がグン↑
私のMBPでCPU使用率30%(最大)
12年6月6日水曜日
18. Web上に公開する上で気を付けること
スクリプトはこんな感じ
using UnityEngine;
using System.Collections;
public class LoadWebScript : MonoBehaviour
{
� IEnumerator StreamLoadLevel (string levelName)
� {
� � while (Application.CanStreamedLevelBeLoaded(levelName) == false) {
� � � yield return new WaitForSeconds(0);
� � � // Application.GetStreamProgressForLevel(levelName)で進捗状況を確認
� � }
� �
� � Application.LoadLevel (levelName);
� �
� }
}
12年6月6日水曜日
19. WebPlayerStreamedとは
うまく使いこなすには
後半のシーンになるほどアセット量は増えるという考え方
2番目シーン
アセット1 アセット2
流
3番目シーン
れ
アセット1 アセット2 アセット3
既にDL済 こいつだけDL
12年6月6日水曜日
20. まとめ
つまり ?
WebPlayerでは
シーンを複数に分けると快適になる可能性があるよ
モバイル端末では
シーンを1つにすると快適になる可能性があるよ
(第4回 渋谷Unity技術勉強会より)
12年6月6日水曜日
21. 参考資料
Security Sandbox of the Webplayer
http://unity3d.com/support/documentation/Manual/Security%20Sandbox.html
Web Player Streaming
http://unity3d.com/support/documentation/Manual/Web%20Player%20Streaming.html
12年6月6日水曜日