You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
76 lines
2.1 KiB
C#
76 lines
2.1 KiB
C#
using System.Collections;
|
|
using UnityEngine;
|
|
using FairyGUI;
|
|
#if UNITY_5_4_OR_NEWER
|
|
using UnityEngine.Networking;
|
|
#endif
|
|
|
|
/// <summary>
|
|
/// Demonstrated how to load UI package from assetbundle. The bundle can be build from the Window Menu->Build FairyGUI example bundles.
|
|
/// </summary>
|
|
class BundleUsageMain : MonoBehaviour
|
|
{
|
|
GComponent _mainView;
|
|
|
|
void Start()
|
|
{
|
|
Application.targetFrameRate = 60;
|
|
|
|
Stage.inst.onKeyDown.Add(OnKeyDown);
|
|
|
|
StartCoroutine(LoadUIPackage());
|
|
}
|
|
|
|
IEnumerator LoadUIPackage()
|
|
{
|
|
string url = Application.streamingAssetsPath.Replace("\\", "/") + "/fairygui-examples/bundleusage.ab";
|
|
if (Application.platform != RuntimePlatform.Android)
|
|
url = "file:///" + url;
|
|
|
|
#if UNITY_2017_2_OR_NEWER
|
|
#if UNITY_2018_1_OR_NEWER
|
|
UnityWebRequest www = UnityWebRequestAssetBundle.GetAssetBundle(url);
|
|
#else
|
|
UnityWebRequest www = UnityWebRequest.GetAssetBundle(url);
|
|
#endif
|
|
yield return www.SendWebRequest();
|
|
|
|
if (!www.isNetworkError && !www.isHttpError)
|
|
{
|
|
AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
|
|
#else
|
|
WWW www = new WWW(url);
|
|
yield return www;
|
|
|
|
if (string.IsNullOrEmpty(www.error))
|
|
{
|
|
AssetBundle bundle = www.assetBundle;
|
|
#endif
|
|
if (bundle == null)
|
|
{
|
|
Debug.LogWarning("Run Window->Build FairyGUI example Bundles first.");
|
|
yield return 0;
|
|
}
|
|
UIPackage.AddPackage(bundle);
|
|
|
|
_mainView = UIPackage.CreateObject("BundleUsage", "Main").asCom;
|
|
_mainView.fairyBatching = true;
|
|
_mainView.SetSize(GRoot.inst.width, GRoot.inst.height);
|
|
_mainView.AddRelation(GRoot.inst, RelationType.Size);
|
|
|
|
GRoot.inst.AddChild(_mainView);
|
|
_mainView.GetTransition("t0").Play();
|
|
}
|
|
else
|
|
Debug.LogError(www.error);
|
|
}
|
|
|
|
void OnKeyDown(EventContext context)
|
|
{
|
|
if (context.inputEvent.keyCode == KeyCode.Escape)
|
|
{
|
|
Application.Quit();
|
|
}
|
|
}
|
|
}
|