Пример #1
0
        private Transform GetSaberObjectParentTransform(AssetsManager manager)
        {
            var file11          = manager.GetAssetsFile(BSConst.KnownFiles.File11);
            var basicSaberModel = file11.FindAsset <GameObject>(x => x.Object.Name == "BasicSaberModel");

            if (basicSaberModel == null)
            {
                throw new Exception("Couldn't find BasicSaberModel!");
            }

            var transform = basicSaberModel.Object.Components.FirstOrDefault(x => x.Object is Transform)?.Object as Transform;

            if (transform == null)
            {
                throw new Exception("Couldn't find Transform on BasicSaberModel!");
            }

            var saberParent = (transform.Children.FirstOrDefault(x => x.Object is Transform &&
                                                                 ((x.Object as Transform).GameObject?.Object?.Name?.EndsWith("Saber") ?? false)).Object as Transform);

            if (saberParent == null)
            {
                throw new Exception("Could not find child transform of BasicSaberModel!");
            }
            return(saberParent);
        }
Пример #2
0
 private Pluralizer plurServ; //for arrays
 public GameObjectViewer(AssetsManager helper, AssetsFileInstance inst, long selectedId)
 {
     InitializeComponent();
     this.helper     = helper;
     this.inst       = inst;
     this.selectedId = selectedId;
 }
Пример #3
0
        private void RemoveLevelAssets(AssetsManager manager, BeatmapLevelDataObject level, List <string> audioFilesToDelete)
        {
            Log.LogMsg($"Removing assets for song id '{level.LevelID}'");
            var file17 = manager.GetAssetsFile(BSConst.KnownFiles.SongsAssetsFilename);

            file17.DeleteObject(level);
            var cover = level.CoverImageTexture2D.Object;

            if (cover == null)
            {
                Log.LogErr($"Could not find cover for song id '{level.LevelID}' to remove it");
            }
            else
            {
                file17.DeleteObject(cover);
            }
            foreach (var diff in level.DifficultyBeatmapSets)
            {
                foreach (var diffbm in diff.DifficultyBeatmaps)
                {
                    file17.DeleteObject(diffbm.BeatmapDataPtr.Object);
                }
            }
            var audioClip = level.AudioClip.Object;

            if (audioClip == null)
            {
                Log.LogErr($"Could not find audio clip asset for song id '{level.LevelID}' to remove it");
            }
            else
            {
                audioFilesToDelete.Add(audioClip.Resource.Source);
                file17.DeleteObject(audioClip);
            }
        }
Пример #4
0
        private static int GetSuggestedDancePosition([NotNull] AssetsManager manager)
        {
            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var obj in assetFile.Objects)
                {
                    if (obj.type != ClassIDType.MonoBehaviour)
                    {
                        continue;
                    }

                    var behaviour = obj as MonoBehaviour;

                    Debug.Assert(behaviour != null);

                    var match = DanceAssetVaguePattern.Match(behaviour.m_Name);

                    if (match.Success)
                    {
                        var posStr = match.Groups["position"].Value;
                        var pos    = Convert.ToInt32(posStr);
                        return(pos);
                    }
                }
            }

            return(InvalidDancePosition);
        }
Пример #5
0
        public static CompositeMesh LoadHeadMesh([NotNull] string filePath)
        {
            var meshList = new List <PrettyMesh>();

            var manager = new AssetsManager();

            manager.LoadFiles(filePath);

            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var obj in assetFile.Objects)
                {
                    if (obj.type != ClassIDType.Mesh)
                    {
                        continue;
                    }

                    var mesh = obj as Mesh;

                    if (mesh == null)
                    {
                        throw new ArgumentNullException(nameof(mesh), "One of head meshes is null.");
                    }

                    var m = new MeshWrapper(manager.assetsFileList, mesh, TexturedMaterialExtraProperties.Head);
                    meshList.Add(m);
                }
            }

            var result = CompositeMesh.FromMeshes(meshList.ToArray());

            return(result);
        }
Пример #6
0
        public static PrettyMesh LoadBodyMesh()
        {
            MeshWrapper result = null;

            var manager = new AssetsManager();

            manager.LoadFiles(BodyModelFilePath);

            var lookup = SerializedObjectsLookup.Create(manager);

            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var obj in assetFile.Objects)
                {
                    if (obj.type != ClassIDType.Mesh)
                    {
                        continue;
                    }

                    var mesh = obj as Mesh;

                    if (mesh == null)
                    {
                        throw new ArgumentNullException(nameof(mesh), "Body mesh is null.");
                    }

                    result = new MeshWrapper(lookup, mesh, TexturedMaterialExtraProperties.Body);

                    break;
                }
            }

            return(result);
        }
        private void AddAssets(AssetState asset, Fixed8 value, Fixed8 claim)
        {
            bool isAdd = true;

            foreach (AssetItem item in assetItems)
            {
                if (item.Asset.AssetId == asset.AssetId)
                {
                    isAdd      = false;
                    item.Asset = asset;
                    item.Value = value;
                    item.Claim = claim;
                    item.RefreshInterface();
                }
            }

            if (isAdd)
            {
                AssetItem item = new AssetItem(asset, value, claim);
                assetItems.Add(item);
            }

            assetInfoPage.Refresh(assetItems);

            if (AssetsManager.GetInstance().AddAssets(asset.AssetId, asset.GetName()))
            {
                sendPage.AddAsset(asset.AssetId, asset.GetName(), value);
            }
            else
            {
                sendPage.RefreshAsset(asset.AssetId, value);
            }
        }
Пример #8
0
        public static List <ulong> CrawlPPtrs(AssetsManager am, AssetsFileInstance inst, ulong startingId)
        {
            List <ulong> depIds = new List <ulong>();

            depIds.Add(startingId);
            return(CrawlPPtrs(am, inst, startingId, depIds));
        }
Пример #9
0
        private static DanceAnimationSet <CharacterImasMotionAsset> LoadDanceLegacy([NotNull] string filePath, int motionNumber, int formationNumber)
        {
            CharacterImasMotionAsset dan = null, apa = null, apg = null, bpg = null;

            var danComp = $"{motionNumber:00}_dan.imo";
            var apaComp = $"{formationNumber:00}_apa.imo";
            var apgComp = $"{formationNumber:00}_apg.imo";
            var bpgComp = $"{formationNumber:00}_bpg.imo";

            var manager = new AssetsManager();

            manager.LoadFiles(filePath);

            var ser     = new ScriptableObjectSerializer();

            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var obj in assetFile.Objects)
                {
                    if (obj.type != ClassIDType.MonoBehaviour)
                    {
                        continue;
                    }

                    var behaviour = obj as MonoBehaviour;

                    if (behaviour == null)
                    {
                        throw new ArgumentException("An object serialized as MonoBehaviour is actually not a MonoBehaviour.");
                    }

                    // Can't use EndsWith() here: some bundles have ".asset" postfixes (alstar_01.imo.unity3d: _apa.imo, _dan_imo.asset, _apg.imo.asset)
                    if (behaviour.m_Name.Contains(danComp))
                    {
                        dan = ser.Deserialize <CharacterImasMotionAsset>(behaviour);
                    }
                    else if (behaviour.m_Name.Contains(apaComp))
                    {
                        apa = ser.Deserialize <CharacterImasMotionAsset>(behaviour);
                    }
                    else if (behaviour.m_Name.Contains(apgComp))
                    {
                        apg = ser.Deserialize <CharacterImasMotionAsset>(behaviour);
                    }
                    else if (behaviour.m_Name.Contains(bpgComp))
                    {
                        bpg = ser.Deserialize <CharacterImasMotionAsset>(behaviour);
                    }

                    if (dan != null && apa != null && apg != null && bpg != null)
                    {
                        break;
                    }
                }
            }

            var suggestedPosition = GetSuggestedDancePosition(manager);

            return(AnimationSet.CreateDance(suggestedPosition, dan, apg, apa, bpg));
        }
Пример #10
0
        private static void Init()
        {
            Glut.glutInit();
            Glut.glutInitDisplayMode(Glut.GLUT_DOUBLE | Glut.GLUT_DEPTH);
            Glut.glutInitWindowSize(Width, Height);

            ScreenWidth  = Glut.glutGet(Glut.GLUT_SCREEN_WIDTH);
            ScreenHeight = Glut.glutGet(Glut.GLUT_SCREEN_HEIGHT);

            Glut.glutInitWindowPosition((ScreenWidth - Width) / 2, (ScreenHeight - Height) / 2);
            Glut.glutCreateWindow("Plexico 2D Game - Copyright Alex Tan 2016");
            //Glut.glutGameModeString(Width+"x"+Height+":32@60");

            Glut.glutSetOption(Glut.GLUT_ACTION_ON_WINDOW_CLOSE, Glut.GLUT_ACTION_CONTINUE_EXECUTION);
            Gl.Viewport(0, 0, Width, Height);
            Glut.glutReshapeFunc(OnReshape);
            Glut.glutDisplayFunc(delegate() { });
            Glut.glutIdleFunc(MainGameLoop);

            //Console.SetWindowSize(Console.LargestWindowWidth / 4, Console.LargestWindowHeight / 4);
            //Console.SetWindowPosition(0, 0);
            Mode = ProgramMode.None;

            AssetsManager.Init();
            Input.Init();
            Gui.Init();
            SwitchToTitleScreen();
        }
Пример #11
0
        public bool SelectionValidForPlugin(AssetsManager am, UABEAPluginAction action, List <AssetContainer> selection, out string name)
        {
            name = "Batch import .png";

            if (action != UABEAPluginAction.Import)
            {
                return(false);
            }

            if (selection.Count <= 1)
            {
                return(false);
            }

            int classId = AssetHelper.FindAssetClassByName(am.classFile, "Texture2D").classId;

            foreach (AssetContainer cont in selection)
            {
                if (cont.ClassId != classId)
                {
                    return(false);
                }
            }
            return(true);
        }
Пример #12
0
        public LoadModPackageDialog(InstallerPackageFile emip, AssetsManager am) : this()
        {
            this.emip = emip;
            this.am   = am;

            BuildTreeAssets();
        }
Пример #13
0
        public GameplayWindow(SkrWindowTemplate template)
            : base(template)
        {
            AssetsManager = new AssetsManager();

            _player = template.World.Player;
        }
Пример #14
0
    State nextState = State.Staying; // 次のステータス

    void Start()
    {
        animator      = GetComponent <Animator>();
        assetsManager = FindObjectOfType <AssetsManager>();
        // 待機状態変数初期化
        StayStart();
    }
        // GET: Assets/Edit/5
        public ActionResult Edit(int id)
        {
            var asset = AssetsManager.Find(id);

            ViewBag.AssetTypeId = GetAssetTypes();
            return(View(asset));
        }
        public IActionResult Assets(int id)
        {
            var filteredAssets = AssetsManager.GetAllByAssetType(id);
            var result         = $"Asset count: {filteredAssets.Count}";

            return(Content(result));
        }
Пример #17
0
        //we probably don't need this method anymore
        private static void RecurseType(AssetsManager am, AssetsFileInstance inst, AssetTypeValueField field, List <ulong> ids, int depth)
        {
            string p = new string(' ', depth);

            foreach (AssetTypeValueField child in field.pChildren)
            {
                //UnityEngine.Debug.Log(p + child.templateField.type + " " + child.templateField.name);
                if (!child.templateField.hasValue)
                {
                    if (child == null)
                    {
                        return;
                    }
                    string typeName = child.templateField.type;
                    if (typeName.StartsWith("PPtr<") && typeName.EndsWith(">") && child.childrenCount == 2)
                    {
                        int   fileId = child.Get("m_FileID").GetValue().AsInt();
                        ulong pathId = (ulong)child.Get("m_PathID").GetValue().AsInt64();
                        //UnityEngine.Debug.Log(p + "found pptr of " + fileId + "," + pathId);
                        if (fileId == 0 && pathId != 0 && !ids.Contains(pathId)) //it's possible we could load some outside dependency, but I'd rather that not happen
                        {
                            ids.Add(pathId);
                            AssetTypeValueField depBaseField = am.GetExtAsset(inst, child).instance.GetBaseField();
                            RecurseType(am, inst, depBaseField, ids, 0);
                        }
                    }
                    RecurseType(am, inst, child, ids, depth + 1);
                }
            }
        }
 public AssetDataScanner(StartScreen ss, AssetsManager am, string dirName)
 {
     this.ss      = ss;
     this.am      = am;
     this.dirName = dirName;
     InitializeComponent();
 }
Пример #19
0
 public PPtrScanner(AssetsManager am, string dirName)
 {
     this.am      = am;
     this.dirName = dirName;
     usedTfc      = am.useTemplateFieldCache;
     InitializeComponent();
 }
Пример #20
0
        public static void ImportCardArt(params string[] sets)
        {
            string cardArtPath = Path.Combine(Helper.GetAppDataPath(), "CardArt");

            Directory.CreateDirectory(cardArtPath);

            var assetDirectory = new DirectoryInfo(Path.Combine(Helper.GetInstallPath(), @"MTGA_Data\Downloads\AssetBundle"));

            _assetsManager = new AssetsManager();
            _loadedAssets  = new Dictionary <string, Texture2D>();

            var files =
                from set in sets
                select assetDirectory.EnumerateFiles().FirstOrDefault(f => f.Name.StartsWith($"{set.ToLower()}_cardart_"))
                into file
                    where file != null
                select file.FullName;

            _assetsManager.LoadFiles(files.ToArray());

            foreach (var serializedFile in _assetsManager.assetsFileList)
            {
                foreach (var obj in serializedFile.Objects.Values)
                {
                    if (!(obj is Texture2D texture2D))
                    {
                        continue;
                    }

                    _loadedAssets[texture2D.m_Name] = (Texture2D)obj;
                }
            }
        }
Пример #21
0
        public static CameraAnimationSet <CharacterImasMotionAsset> LoadCamera([NotNull] string filePath, [CanBeNull] int?desiredCameraNumber)
        {
            CharacterImasMotionAsset cam = null, apa = null, apg = null, bpg = null;

            var manager = new AssetsManager();

            manager.LoadFiles(filePath);

            var ser = new ScriptableObjectSerializer();
            int cameraNumber;

            if (desiredCameraNumber != null)
            {
                do
                {
                    // Some songs, e.g. Alliance Stardust (alstar), has more than one cameras.
                    // In these cases the user must select the appropriate camera number.
                    if (TryLoadSpecifiedCamera(manager, ser, desiredCameraNumber.Value, ref cam, ref apa, ref apg, ref bpg))
                    {
                        cameraNumber = desiredCameraNumber.Value;
                        break;
                    }

                    TryLoadFirstFoundCamera(manager, ser, ref cam, ref apa, ref apg, ref bpg);
                    cameraNumber = InvalidCameraNumber;
                } while (false);
            }
            else
            {
                TryLoadFirstFoundCamera(manager, ser, ref cam, ref apa, ref apg, ref bpg);
                cameraNumber = UnspecifiedCameraNumber;
            }

            return(AnimationSet.CreateCamera(cameraNumber, cam, apg, apa, bpg));
        }
Пример #22
0
 public MonobehaviourSearch(List <AssetDetails> details, AssetsFile file, AssetsManager manager)
 {
     InitializeComponent();
     this.details = details;
     this.file    = file;
     this.manager = manager;
 }
Пример #23
0
 public TransformSearch(List <AssetDetails> details, AssetsFile file, AssetsManager manager)
 {
     InitializeComponent();
     this.details = details;
     this.file    = file;
     this.manager = manager;
 }
Пример #24
0
        private static void ExtractSingleAcb([NotNull] string assetBundlePath)
        {
            Console.WriteLine("Extracting: {0}", assetBundlePath);

            var dir = new FileInfo(assetBundlePath).DirectoryName;

            Debug.Assert(dir != null);

            var manager = new AssetsManager();

            manager.LoadFiles(assetBundlePath);

            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var o in assetFile.Objects)
                {
                    if (o.type != ClassIDType.TextAsset)
                    {
                        continue;
                    }

                    var a = (TextAsset)o;

                    var acbName = a.m_Name;
                    var acbData = a.m_Script;
                    var acbPath = Path.Combine(dir, acbName);

                    using (var file = File.Open(acbPath, FileMode.Create, FileAccess.Write, FileShare.Write)) {
                        file.Write(acbData, 0, acbData.Length);
                    }
                }
            }
        }
        public OpenBundleDialog(AssetsManager helper, string filePath)
        {
            InitializeComponent();
            this.filePath = filePath;
            fileName      = Path.GetFileName(filePath);
            inst          = helper.LoadBundleFile(filePath);
            file          = inst.file;
            uint compressionMethod = file.bundleHeader6.flags & 0x3F;

            if (compressionMethod == 0)
            {
                justThisFile.Enabled        = true;
                fileAndDependencies.Enabled = true;
                compressBundle.Enabled      = true;
                status.Text = $"Opening bundle file {fileName}...";
            }
            else
            {
                decompressBundle.Enabled         = true;
                decompressBundleInMemory.Enabled = true;
                if (compressionMethod == 1)
                {
                    status.Text = $"Opening bundle file {fileName} (LZMA)...";
                }
                else if (compressionMethod == 2 || compressionMethod == 3)
                {
                    status.Text = $"Opening bundle file {fileName} (LZ4)...";
                }
                else
                {
                    status.Text = $"Opening bundle file {fileName} (???)...";
                }
            }
        }
Пример #26
0
        static void PatchVR(string gameManagersBackupPath, string gameManagersPath, string classDataPath)
        {
            Console.WriteLine("Patching globalgamemanagers...");
            Console.WriteLine($"Using classData file from path '{classDataPath}'");

            AssetsManager am = new AssetsManager();

            am.LoadClassPackage(classDataPath);
            AssetsFileInstance ggm      = am.LoadAssetsFile(gameManagersBackupPath, false);
            AssetsFile         ggmFile  = ggm.file;
            AssetsFileTable    ggmTable = ggm.table;

            am.LoadClassDatabaseFromPackage(ggmFile.typeTree.unityVersion);

            List <AssetsReplacer> replacers = new List <AssetsReplacer>();

            AssetFileInfoEx        buildSettings     = ggmTable.GetAssetInfo(11);
            AssetTypeValueField    buildSettingsBase = am.GetATI(ggmFile, buildSettings).GetBaseField();
            AssetTypeValueField    enabledVRDevices  = buildSettingsBase.Get("enabledVRDevices").Get("Array");
            AssetTypeTemplateField stringTemplate    = enabledVRDevices.templateField.children[1];

            AssetTypeValueField[] vrDevicesList = new AssetTypeValueField[] { StringField("OpenVR", stringTemplate) };
            enabledVRDevices.SetChildrenList(vrDevicesList);

            replacers.Add(new AssetsReplacerFromMemory(0, buildSettings.index, (int)buildSettings.curFileType, 0xffff, buildSettingsBase.WriteToByteArray()));

            using (AssetsFileWriter writer = new AssetsFileWriter(File.OpenWrite(gameManagersPath)))
            {
                ggmFile.Write(writer, 0, replacers, 0);
            }
        }
Пример #27
0
        public static MeshWrapper LoadBodyMesh([NotNull] string filePath)
        {
            MeshWrapper result = null;

            var manager = new AssetsManager();

            manager.LoadFiles(filePath);

            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var obj in assetFile.Objects)
                {
                    if (obj.type != ClassIDType.Mesh)
                    {
                        continue;
                    }

                    var mesh = obj as Mesh;

                    if (mesh == null)
                    {
                        throw new ArgumentNullException(nameof(mesh), "Body mesh is null.");
                    }

                    result = new MeshWrapper(manager.assetsFileList, mesh, TexturedMaterialExtraProperties.Body);

                    break;
                }
            }

            return(result);
        }
Пример #28
0
        public static void Init(BattleParams param)
        {
            _init = true;
            _shouldSendActions = false;

            string          model       = ModelFactory.GetBattleData(Utils.GetIDFromRID(param.id)).model;
            CAIBakedNavmesh navmeshData = AssetsManager.LoadAsset <CAIBakedNavmesh>("scene/" + model + "_navmesh",
                                                                                    "CAIBakedNavmesh");

            _framesPerKeyFrame = param.framesPerKeyFrame;
            _frameRate         = param.frameRate;
            _nextKeyFrame      = param.framesPerKeyFrame;

            cBattle = new VBattle(param);
            lBattle = new Battle(param, navmeshData.GetNavmesh(), Env.LUA_ENV);

            _logicThread = new Thread(LogicWorker);
            _logicThread.IsBackground = true;
            _logicThread.Start();

            NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_BATTLE_START, HandleBattleStart);
            NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_FRAME, HandleFrame);
            NetModule.instance.AddACMDListener(Module.BATTLE, Command.ACMD_BATTLE_END, HandleBattleEnd);
            NetModule.instance.Send(ProtocolManager.PACKET_BATTLE_QCMD_BATTLE_CREATED());
        }
Пример #29
0
        public static AvatarWrapper LoadBodyAvatar([NotNull] string filePath)
        {
            AvatarWrapper result = null;

            var manager = new AssetsManager();

            manager.LoadFiles(filePath);

            foreach (var assetFile in manager.assetsFileList)
            {
                foreach (var obj in assetFile.Objects)
                {
                    if (obj.type != ClassIDType.Avatar)
                    {
                        continue;
                    }

                    var avatar = obj as Avatar;

                    if (avatar == null)
                    {
                        throw new ArgumentNullException(nameof(avatar), "Body avatar is null.");
                    }

                    result = new AvatarWrapper(avatar);

                    break;
                }
            }

            return(result);
        }
Пример #30
0
        public BeatSaberQuestomConfig GetCurrentConfig(bool suppressImages = false)
        {
            using (var apkFileProvider = new ApkAssetsFileProvider(_apkFilename, ApkAssetsFileProvider.FileCacheMode.Memory, true))
            {
                var manager = new AssetsManager(apkFileProvider, BSConst.GetAssetTypeMap(), false);
                manager.GetAssetsFile("globalgamemanagers");
                var file11          = manager.GetAssetsFile(BSConst.KnownFiles.File11);
                var basicSaberModel = file11.FindAsset <GameObject>(x => x.Object.Name == "BasicSaberModel");
                var basicSaber      = file11.FindAsset <GameObject>(x => x.Object.Name == "BasicSaber");

                var config = GetConfig(manager, suppressImages);

                //clear out any of the internal refs that were used so the GC can clean things up
                foreach (var p in config.Playlists)
                {
                    p.CoverArtSprite  = null;
                    p.LevelPackObject = null;
                    foreach (var song in p.SongList)
                    {
                        song.LevelData = null;
                        song.SourceOgg = null;
                    }
                }
                config.Saber = new SaberModel()
                {
                    SaberID = GetCurrentSaberID(manager)
                };
                return(config);
            }
        }
Пример #31
0
        private void LoadAssets()
        {
            AssetsManager m_assetsManager = new AssetsManager(Application.Current);

            m_assetsManager.AssetsDictionary.Add("BackgroundBlack", "/Assets/LogoBlack.png");
            m_assetsManager.AssetsDictionary.Add("BackgroundWhite", "/Assets/LogoWhite.png");

            m_assetsManager.AssetsDictionary.Add("DivisionBlack", "/Assets/Icons/DivisionBlack.png");
            m_assetsManager.AssetsDictionary.Add("DivisionWhite", "/Assets/Icons/DivisionWhite.png");
            m_assetsManager.AssetsDictionary.Add("MailBlack", "/Assets/Icons/MailBlack.png");
            m_assetsManager.AssetsDictionary.Add("MailWhite", "/Assets/Icons/MailWhite.png");
            m_assetsManager.AssetsDictionary.Add("TwitterBlack", "/Assets/Icons/TwitterBlack.png");
            m_assetsManager.AssetsDictionary.Add("TwitterWhite", "/Assets/Icons/TwitterWhite.png");
            m_assetsManager.AssetsDictionary.Add("WebBlack", "/Assets/Icons/WebBlack.png");
            m_assetsManager.AssetsDictionary.Add("WebWhite", "/Assets/Icons/WebWhite.png");
            
            Cirrious.CrossCore.Mvx.RegisterSingleton<IAssetsManager>(m_assetsManager);
        }
Пример #32
0
    void Awake()
    {
        if (null != sInstance)
            return;

        sInstance = this;

        // keep alive on change scene
        DontDestroyOnLoad(this.gameObject);

        // if exist gameobject called "UIRoot". Destory it.
        // this maybe we add to desing ui temply
        GameObject gameObjectUIRoot = GameObject.Find("UIRoot");
        if (null != gameObjectUIRoot)
            GameObject.Destroy (gameObjectUIRoot);

        GameObject uiPageMain = GameObject.Find("UIPageMain");
        if (null != uiPageMain)
            GameObject.Destroy (uiPageMain);

        mAssetsMgr = AssetsManager.GetInstance ();

        mUIMgr = UIManager.GetInstance ();

        // asset manager update path
        string updatePath = Application.persistentDataPath + "Update";
        if (!Directory.Exists(updatePath)) Directory.CreateDirectory(updatePath);
        mAssetsMgr.AddUpdatePath (updatePath);

        // ui manager
        _Load(0, () => {
            // lua
            LuaState.loaderDelegate = LuaLoadFunction;
            luaSvr_GM = new LuaSvr();
            luaSelf_GM =(LuaTable)luaSvr_GM.start("Lua/GameManager");
            luaUpdate_GM = (LuaFunction)luaSelf_GM["update"];
        });
    }
Пример #33
0
 public static AssetsManager GetInstance()
 {
     if (null == sInstance)
         sInstance = new AssetsManager ();
     return sInstance;
 }
Пример #34
0
 public void Destroy()
 {
     ClearAssetAll (false);
     sInstance = null;
 }
Пример #35
0
        private void LoadAssets()
        {
            AssetsManager m_assetsManager = new AssetsManager();

            Cirrious.CrossCore.Mvx.RegisterSingleton<IAssetsManager>(m_assetsManager);
        }
Пример #36
0
    void OnDestroy()
    {
        if (null != mUIMgr)
        {
            mUIMgr.Destroy();
            mUIMgr = null;
        }

        if (null != mAssetsMgr)
        {
            mAssetsMgr.Destroy();
            mAssetsMgr = null;
        }
    }