private void LoadAssetbundle() { int CurStageID = 0; if (ObjectSelf.GetInstance().GetIsPrompt()) { CurStageID = ObjectSelf.GetInstance().GetPromptCurCampaignID(); } else { CurStageID = ObjectSelf.GetInstance().GetCurCampaignID(); } CurStage = (StageTemplate)DataTemplate.GetInstance().m_StageTable.getTableData(CurStageID); FightControler.isOpeningAnimation = CurStage.m_iskcdh != -1; if (CurStage.m_stageevent[0] != "-1") { Monstersdata = new MonsterGroupDataObjMgr(AssetLoader.Inst.GetEditorAssetRes(CurStage.m_stageevent[0]) as MonsterGroupDataObj); } if (CurStage.m_stageevent[1] != "-1") { HeroPathdata = AssetLoader.Inst.GetEditorAssetRes(CurStage.m_stageevent[1]) as HeroPathDataObj; //测试用的; HeroPathdata.MoveDistance -= 4f; } if (CurStage.m_stageevent[2] != "-1") { Camdata = AssetLoader.Inst.GetEditorAssetRes(CurStage.m_stageevent[2]) as CameraDataObj; } if (CurStage.m_stageevent[3] != "-1") { StoryAnimdata = AssetLoader.Inst.GetEditorAssetRes(CurStage.m_stageevent[3]) as StoryAnimDataObj; } LoadFightEditor(); }
/// <summary> /// 动态初始化完成后发送加载完事件给战斗 /// </summary> /// <param name="Camdata">摄像机序列化数据</param> public void Init(CameraDataObj Camdata, StoryAnimDataObj Storydata) { MainCam = Camera.main; StoryData = Storydata; AnimationFollowCam = new GameObject("AnimationFollowCam"); if (StoryData != null) { AnimationFollowCam.transform.parent = FightEditorContrler.GetInstantiate().GetStoryCamAnimsObj().transform; } LineUpFollowCam = FightEditorContrler.GetInstantiate().GetLineUpFollowCam().transform; FightFollowCam = FightEditorContrler.GetInstantiate().GetFightFollowCam().transform; FightDefaultCam = FightEditorContrler.GetInstantiate().GetFightDefaultCam().transform; MainCam.transform.position = Camdata.CameraPos; MainCam.transform.eulerAngles = Camdata.CameraAngles; CamEnterPos = Camdata.CamEnterPos; CamCenter = Camdata.CamCenter; CamEnterTime = Camdata.CamEnterTime; CaminfoList = new List <Caminfo>(); CaminfoList = Camdata.CamPointdataList; CaminfoCount = CaminfoList.Count; SetCamtype(CamType.Enter); SetCamTagType(CamTagType.Null); SetCamholdType(CamHoldType.Pause); }
public override void OnInspectorGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("摄像机入场时间"); Cameracontrler.CamEnterTime = EditorGUILayout.Slider(Cameracontrler.CamEnterTime, 0, 10); EditorGUILayout.EndHorizontal(); if (GUILayout.Button("创建摄像机触发事件")) { GameObject CamTriggerPointID = new GameObject("CamTriggerPointID"); CamTriggerPointID.transform.parent = Cameracontrler.transform.GetChild(0); CamTriggerPointID.transform.localPosition = Vector3.zero; GameObject cam = new GameObject("cam"); cam.AddComponent <Camera>().fieldOfView = 50; cam.GetComponent <Camera>().enabled = false; cam.transform.parent = CamTriggerPointID.transform; CamTriggerPointID.AddComponent <CamTriggerEvent>().info = new Caminfo(); } //if (GUILayout.Button("创建摄像机动画")) //{ // GameObject CameraAnimation = new GameObject("CameraAnimation"); // CameraAnimation.transform.parent = Cameracontrler.transform.GetChild(1); // CameraAnimation.transform.localPosition = Vector3.zero; // CameraAnimation.AddComponent<CamAnimContrler>(); // CameraAnimation.AddComponent<CameraPath>(); // CameraAnimation.AddComponent<CameraPathAnimator>().playOnStart = false; //} EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("保存场景名称"); string str = EditorApplication.currentScene; string scenename = str.Substring(str.LastIndexOf("/") + 1, str.LastIndexOf(".") - str.LastIndexOf("/") - 1); Cameracontrler.ScenceName = EditorGUILayout.TextField(scenename); EditorGUILayout.EndHorizontal(); if (GUILayout.Button("DONE")) { //PrefabUtility.CreatePrefab("Assets/Resources/Done/" + Cameracontrler.Name + ".prefab", Cameracontrler.gameObject); //实例化monsterdata CameraDataObj CamData = ScriptableObject.CreateInstance <CameraDataObj>(); //添加数据给Camdata CamData.CamPointdataList = new List <Caminfo>(); Transform CamTriggerPointGroup = Cameracontrler.transform.FindChild("CamTriggerPointGroup"); Transform CamEnterPos = Cameracontrler.transform.FindChild("CamEnterPos"); Transform CamCenter = Cameracontrler.transform.FindChild("CamCenter"); Transform CamAnimationGroup = Cameracontrler.transform.FindChild("CamAnimationGroup"); for (int i = 0; i < CamTriggerPointGroup.childCount; i++) { CamData.CamPointdataList.Add(CamTriggerPointGroup.GetChild(i).GetComponent <CamTriggerEvent>().info); } CamData.CamEnterPos = CamEnterPos.position; CamData.CamCenter = CamCenter.position; CamData.CamEnterTime = Cameracontrler.CamEnterTime; CamData.CameraPos = Camera.main.transform.position; CamData.CameraAngles = Camera.main.transform.eulerAngles; CamData.CamAnimationsCount = CamAnimationGroup.childCount; //SysData将创建为一个对象,这时在project面板上会看到这个对象 #if UNITY_ANDROID Debug.Log("F**K!!!!!这里是安卓设备"); string saveurl = "Assets/StreamingAssets/ScenceEditor/" + "Android/" + Cameracontrler.ScenceName + "/Camera/"; if (Directory.Exists(saveurl) == false) { Directory.CreateDirectory(saveurl); } string name = saveurl + Cameracontrler.ScenceName + "Cam" + ".asset"; AssetDatabase.CreateAsset(CamData, name); Object o = AssetDatabase.LoadAssetAtPath(name, typeof(CameraDataObj)); BuildPipeline.BuildAssetBundle(o, null, saveurl + Cameracontrler.ScenceName + "Cam" + ".assetbundle" , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets | BuildAssetBundleOptions.DeterministicAssetBundle, BuildTarget.Android); BuildPipeline.BuildAssetBundle(o, null, "Assets/StreamingAssets/AssetBundle/Android/" + Cameracontrler.ScenceName + "Cam" + ".assetbundle" , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets | BuildAssetBundleOptions.DeterministicAssetBundle, BuildTarget.Android); #endif #if UNITY_IPHONE Debug.Log("F**K!!!!!这里是苹果设备"); string saveurl = "Assets/StreamingAssets/ScenceEditor/" + "IPhonePlayer/" + Cameracontrler.ScenceName + "/Camera/"; if (Directory.Exists(saveurl) == false) { Directory.CreateDirectory(saveurl); } string name = saveurl + Cameracontrler.ScenceName + "Cam" + ".asset"; AssetDatabase.CreateAsset(CamData, name); Object o = AssetDatabase.LoadAssetAtPath(name, typeof(CameraDataObj)); BuildPipeline.BuildAssetBundle(o, null, saveurl + Cameracontrler.ScenceName + "Cam" + ".assetbundle" , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets | BuildAssetBundleOptions.DeterministicAssetBundle, BuildTarget.iPhone); BuildPipeline.BuildAssetBundle(o, null, "Assets/StreamingAssets/AssetBundle/IOS/" + Cameracontrler.ScenceName + "Cam" + ".assetbundle" , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets | BuildAssetBundleOptions.DeterministicAssetBundle, BuildTarget.iPhone); #endif #if UNITY_STANDALONE_WIN Debug.Log("F**K!!!!!这是PC设备"); string saveurl = "Assets/StreamingAssets/ScenceEditor/" + "WindowsEditor/" + Cameracontrler.ScenceName + "/Camera/"; if (Directory.Exists(saveurl) == false) { Directory.CreateDirectory(saveurl); } string name = saveurl + Cameracontrler.ScenceName + "Cam" + ".asset"; AssetDatabase.CreateAsset(CamData, name); Object o = AssetDatabase.LoadAssetAtPath(name, typeof(CameraDataObj)); BuildPipeline.BuildAssetBundle(o, null, saveurl + Cameracontrler.ScenceName + "Cam" + ".assetbundle" , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets | BuildAssetBundleOptions.DeterministicAssetBundle, BuildTarget.StandaloneWindows); BuildPipeline.BuildAssetBundle(o, null, "Assets/StreamingAssets/AssetBundle/PC/" + Cameracontrler.ScenceName + "Cam" + ".assetbundle" , BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets | BuildAssetBundleOptions.DeterministicAssetBundle, BuildTarget.StandaloneWindows); #endif string SavePath = "Assets/CEHUAYONG/ScenesPreb/" + Cameracontrler.ScenceName + "/"; if (Directory.Exists(SavePath) == false) { Directory.CreateDirectory(SavePath); } PrefabUtility.CreatePrefab(SavePath + Cameracontrler.name + ".prefab", Cameracontrler.gameObject); AssetDatabase.Refresh(); EditorUtility.DisplayDialog("", "保存完成", "OK"); //删除面板上的临时对象 //AssetDatabase.DeleteAsset(name); } }