Example #1
0
        /// <summary>
        ///   读取场景配置文件,生成场景对象
        /// </summary>
        static void GenerateSceneObject(string scene_name)
        {
            if (!AssetBundleManager.Instance.IsSceneExist(scene_name))
            {
                return;
            }
            var scene_desc = AssetBundleManager.Instance.ResourcesManifest.FindScene(scene_name);

            if (scene_desc == null)
            {
                return;
            }
            TextAsset text_asset = AssetBundleManager.Instance.LoadAsset <TextAsset>(scene_desc.SceneConfigPath);

            if (text_asset == null)
            {
                return;
            }

            SceneConfig config = new SceneConfig();

            config.LoadFromString(text_asset.text);
            for (int i = 0; i < config.Data.SceneObjects.Count; ++i)
            {
                var obj      = config.Data.SceneObjects[i];
                var go       = ResourcesManager.Load <GameObject>(obj.AssetName);
                var parent   = GameObject.Find(obj.ParentName);
                var instance = GameObject.Instantiate <GameObject>(go);
                instance.transform.parent     = parent != null ? parent.transform : null;
                instance.transform.position   = obj.Position;
                instance.transform.localScale = obj.Scale;
                instance.transform.rotation   = obj.Rotation;
            }
        }