Esempio n. 1
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        GUILayout.BeginVertical("Box");
        GUILayout.Label("Adornings Operations:");

        AdorningManager am = (AdorningManager)target;

        if (am == null)
        {
            return;
        }

        GUILayout.BeginVertical("Box");
        GUILayout.Label("Adornings Parameters:");
        GUILayout.BeginHorizontal("Box");
        am.VisFactor = EditorGUILayout.Slider("VisFactor", am.VisFactor, 0.0f, 1.0f);
        GUILayout.EndHorizontal();

        GUILayout.BeginHorizontal("Box");
        am.FadeTime = EditorGUILayout.Slider("FadeTime", am.FadeTime, 0.0f, 1.0f);
        GUILayout.EndHorizontal();


        GUILayout.EndVertical();
    }
Esempio n. 2
0
    public void OnFinish()
    {
        double loadSceneFinishTime = DateTime.Now.Ticks;

        ResourceEx.Collect();

        AdorningManager.Init();
        GrassAdorningManager.Init();

        ImageSetting.OnSceneLoadFinish();
        ImageSetting.Apply(true);
        //ImageSetting.ApplySceneImageSetting(SceneResInfoManager.CurrentActiveInstance, true);
        LightingEffectFactory.DisableDeadEffect();

        // 场景地图资源加载完后开始播放背景音乐
        //SoundManager.CreateUISound(StageManager.Instance.getSoundID());


        if (SoldierCamera.MainInstance() != null)
        {
            SoldierCamera.MainInstance <SoldierCamera>().updateCameraParam(m_curMapID, -1);
        }

        loadSceneFinishTime  = DateTime.Now.Ticks - loadSceneFinishTime;
        loadSceneFinishTime *= 0.0000001f;
        Debug.Log("场景加载完成阶段,耗时:" + loadSceneFinishTime);


        double time = DateTime.Now.Ticks - sceneLoadBegainTime;

        time *= 0.0000001f;
        Debug.Log("SceneLoad::DoTask 资源加载成功,场景名称 = " + m_SceneName + ",耗时:" + time);

        InvokeSceneLoadFinishEvent(m_SceneName);


        StartCoroutine(WaitTransitionFinish());

        InvokeSceneTransitionStartEvent(m_SceneName);
    }
Esempio n. 3
0
    static void ImportFun(bool AdorningAssetBundleBuild, BuildTarget platform)
    {
        if (Application.isPlaying || !Application.isEditor)
        {
            Debug.LogError("Import Adorning Operation can not run in runtime, please do it in editor mode");
        }

        string scenename = "adorning_" + Path.GetFileNameWithoutExtension(UnityEditor.SceneManagement.EditorSceneManager.GetActiveScene().name);
        string absfolder = Application.dataPath + "/UnityScene/" + scenename;
        string folder    = "Assets/UnityScene/" + scenename;

        if (Directory.Exists(absfolder) == false)
        {
            Directory.CreateDirectory(absfolder);
        }



        string[] abssubfolders = Directory.GetDirectories(absfolder);
        foreach (string abssubfolder in abssubfolders)
        {
            string amname    = Path.GetFileName(abssubfolder);
            string subfolder = folder + "/" + amname;

            GameObject goam = GameObject.Find(amname);
            if (goam == null)
            {
                continue;
            }

            AdorningManager am = goam.GetComponent <AdorningManager>();
            if (am == null)
            {
                continue;
            }

            if (AdorningAssetBundleBuild)
            {
                string[] absfiles = Directory.GetFiles(abssubfolder, "*.unity3d");
                int      nGroup   = absfiles.Length;
                for (int iGroup = 0; iGroup < nGroup; iGroup++)
                {
                    string absfile = absfiles[iGroup];
                    string file    = subfolder + "/" + Path.GetFileName(absfile);

                    if (File.Exists(absfile) == false)
                    {
                        continue;
                    }

                    byte[] data = File.ReadAllBytes(absfile);
                    if (data == null || data.Length <= 0)
                    {
                        continue;
                    }

                    AssetBundle assetbundle = AssetBundle.LoadFromMemory(data);
                    if (assetbundle == null)
                    {
                        continue;
                    }

                    GameObject prefab = (GameObject)assetbundle.mainAsset;
                    if (prefab == null)
                    {
                        continue;
                    }

                    data = null;
                    System.GC.Collect();

                    GameObject groupgo = GameObject.Instantiate(prefab);
                    if (groupgo == null)
                    {
                        continue;
                    }
                    groupgo.name = prefab.name;

                    Vector3 pos   = groupgo.transform.localPosition;
                    Vector3 angle = groupgo.transform.localEulerAngles;
                    Vector3 scale = groupgo.transform.localScale;

                    groupgo.transform.parent = goam.transform;

                    groupgo.transform.localPosition    = pos;
                    groupgo.transform.localEulerAngles = angle;
                    groupgo.transform.localScale       = scale;

                    prefab = null;
                    assetbundle.Unload(false);

                    float fProgress = (float)iGroup / (float)nGroup;
                    EditorUtility.DisplayProgressBar("Import Adorning: " + amname, "Import AssetBundle: " + groupgo.name + ".unity3d...", fProgress);
                }
            }
            else
            {
                string[] absfiles = Directory.GetFiles(abssubfolder, "*.prefab");
                int      nGroup   = absfiles.Length;
                for (int iGroup = 0; iGroup < nGroup; iGroup++)
                {
                    string absfile = absfiles[iGroup];
                    string file    = subfolder + "/" + Path.GetFileName(absfile);

                    if (File.Exists(absfile) == false)
                    {
                        continue;
                    }

                    GameObject prefab = (GameObject)AssetDatabase.LoadAssetAtPath(file, typeof(GameObject));
                    if (prefab == null)
                    {
                        continue;
                    }
                    GameObject groupgo = (GameObject)PrefabUtility.InstantiatePrefab(prefab);
                    if (groupgo == null)
                    {
                        continue;
                    }

                    Vector3 pos   = groupgo.transform.localPosition;
                    Vector3 angle = groupgo.transform.localEulerAngles;
                    Vector3 scale = groupgo.transform.localScale;

                    groupgo.transform.parent = goam.transform;

                    groupgo.transform.localPosition    = pos;
                    groupgo.transform.localEulerAngles = angle;
                    groupgo.transform.localScale       = scale;

                    float fProgress = (float)iGroup / (float)nGroup;
                    EditorUtility.DisplayProgressBar("Import Adorning: " + amname, "Import Prefab: " + groupgo.name + ".prefab...", fProgress);
                }
            }
        }

        EditorUtility.ClearProgressBar();
    }
Esempio n. 4
0
    public static void Init()
    {
        vmin = new Vector3(9999999.0f, 9999999.0f, 9999999.0f);
        vmax = -vmin;

        foreach (string scenegroupname in scenegroupnames)
        {
            GameObject goscene = GameObject.Find(scenegroupname);
            if (goscene != null)
            {
                Renderer[] rs = goscene.GetComponentsInChildren <Renderer>();
                //int n = goscene.transform.childCount;
                //for (int i = 0; i < n; i++)
                foreach (Renderer r in rs)
                {
                    //Transform tchild = goscene.transform.GetChild(i);
                    Vector3      pos = r.transform.position;
                    MeshRenderer mr  = r.gameObject.GetComponent <MeshRenderer>(); //要有中心轴的一定是meshrender,粒子系统有renderer却非meshrender
                    if (mr != null && mr.bounds != null)
                    {
                        pos = mr.bounds.center;
                    }

                    if (pos.x > vmax.x)
                    {
                        vmax.x = pos.x;
                    }
                    if (pos.y > vmax.y)
                    {
                        vmax.y = pos.y;
                    }
                    if (pos.z > vmax.z)
                    {
                        vmax.z = pos.z;
                    }

                    if (pos.x < vmin.x)
                    {
                        vmin.x = pos.x;
                    }
                    if (pos.y < vmin.y)
                    {
                        vmin.y = pos.y;
                    }
                    if (pos.z < vmin.z)
                    {
                        vmin.z = pos.z;
                    }
                }
            }
        }

        vcenter = (vmax + vmin) * 0.5f;
        vmax    = (vmax - vcenter) * 1.1f + vcenter;
        vmin    = (vmin - vcenter) * 1.1f + vcenter;
        vsize   = vmax - vmin;
        float groupstride = (1 + groupsize * 2);

        vdistance = vsize / groupstride;

        Instances.Clear();
        foreach (string scenegroupname in scenegroupnames)
        {
            GameObject goscene = GameObject.Find(scenegroupname);
            if (goscene != null)
            {
                AdorningManager am = goscene.GetComponent <AdorningManager>();
                if (am == null)
                {
                    am = goscene.AddComponent <AdorningManager>();
                    am.Build();
                }
                if (am != null)
                {
                    Instances.Add(am);
                }
                if (scenegroupname == "ScenesEffects" || scenegroupname == "ScenesEffect")
                {
                    am.FadeEnable = false;
                }
                if (scenegroupname == "ScenesEffects" || scenegroupname == "ScenesEffect" || scenegroupname == "ScenesTree")
                {
                    am.VisFactor     = 0.25f;
                    am.supportphysic = false;
                }
                else
                {
                    am.VisFactor     = 0.35f;
                    am.supportphysic = true;
                }
            }
        }
    }
Esempio n. 5
0
 // [MenuItem("Tools/Adorning/Build")]
 static void Build()
 {
     AdorningManager.Init();
 }