using System.Collections.Generic; using UnityEngine; using UnityEditor; using UnityEngine.AI; public class SceneToolNew { /// /// 选中子建筑父物体设置,根据单位名字长度调整下面BuildName /// [MenuItem("SceneToolNew/ChangefloorName")] public static void ChangefloorName() { string BuildName= Selection.activeTransform.name.Substring(0,1); Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].name.Contains("nei")||obj[i].name.Contains("wai")) { obj[i].name = BuildName + obj[i].name; } } } /// /// 需要在楼层上手动挂载FloorMessage脚本 /// [MenuItem("SceneToolNew/SetFloorMessage")] public static void SetfloorMessage() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].GetComponent()) { string name = obj[i].name; obj[i].GetComponent().buildNum = name.Substring(0,1); if (name.ToLower().Contains("m")) { obj[i].GetComponent().floorNum = int.Parse(name.Substring(5, name.Length - 5)); obj[i].GetComponent().interlayerNum = 1; } else { obj[i].GetComponent().floorNum = int.Parse(name.Substring(4, name.Length - 4)); obj[i].GetComponent().interlayerNum = 0; } } } } [MenuItem("SceneToolNew/SetWallCanMove")] public static void SetWallCanMove() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.layer == LayerMask.NameToLayer("Wall")) { if(!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } obj[i].gameObject.GetComponent().overrideArea = true; obj[i].gameObject.GetComponent().area = 1; } } } [MenuItem("SceneToolNew/SetNavLayerShiWaiCarRoad")] public static void SetNavLayerShiWaiCarRoad() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.layer == LayerMask.NameToLayer("CarRode")) { if (!obj[i].gameObject.GetComponent()) { //Debug.Log(obj[i].name); if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } obj[i].gameObject.GetComponent().gameObjType=CloneObjType.StaticGameObject; CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("CarRoad"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; } } } } [MenuItem("SceneToolNew/SetNavLayerShiWaiSoldierRoad")] public static void SetNavLayerShiWaiSoliderRoad() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.layer == LayerMask.NameToLayer("ManRode")) { if (!obj[i].gameObject.GetComponent()) { //Debug.Log(obj[i].name); if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } obj[i].gameObject.GetComponent().gameObjType = CloneObjType.StaticGameObject; CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("ShiWaiSoldier"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; } } } } [MenuItem("SceneToolNew/SetShiNeiFloor")] public static void SetShiNeiFloor() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.name.ToLower().Contains("floor")&& obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("ShiNeiFloor"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; FloorMessage mess = obj[i].GetComponentInParent(); obj[i].gameObject.GetComponent().gameObjType = CloneObjType.StaticGameObject; obj[i].gameObject.GetComponent().buildNum = mess.buildNum; obj[i].gameObject.GetComponent().interlayerNum = mess.interlayerNum; obj[i].gameObject.GetComponent().floorNum = mess.floorNum; obj[i].gameObject.layer = LayerMask.NameToLayer("ManRode"); } } } } [MenuItem("SceneToolNew/SetShiNeiLT")] public static void SetShiNeiLT() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.name.ToLower().Contains("lt") && obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("ShiNeiFloor"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; FloorMessage mess = obj[i].GetComponentInParent(); obj[i].gameObject.GetComponent().gameObjType = CloneObjType.StaticGameObject; obj[i].gameObject.GetComponent().buildNum = mess.buildNum; obj[i].gameObject.GetComponent().interlayerNum = mess.interlayerNum; obj[i].gameObject.GetComponent().floorNum = mess.floorNum; obj[i].gameObject.layer = LayerMask.NameToLayer("ManRode"); } } } } [MenuItem("SceneToolNew/SetShiNeiFT")] public static void SetShiNeiFT() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.name.ToLower().Contains("ft") && obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("ShiNeiFloor"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; FloorMessage mess = obj[i].GetComponentInParent(); obj[i].gameObject.GetComponent().gameObjType = CloneObjType.StaticGameObject; obj[i].gameObject.GetComponent().buildNum = mess.buildNum; obj[i].gameObject.GetComponent().interlayerNum = mess.interlayerNum; obj[i].gameObject.GetComponent().floorNum = mess.floorNum; obj[i].gameObject.layer = LayerMask.NameToLayer("ManRode"); } } } } [MenuItem("SceneToolNew/SetShiNeiXHS")] public static void SetShiNeiXHS() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if ((obj[i].gameObject.name.ToLower().Contains("xhs")|| obj[i].gameObject.name.ToLower().Contains("snxh")) && obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } //if (!obj[i].gameObject.GetComponent()) //{ // obj[i].gameObject.AddComponent(); //} if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); obj[i].gameObject.GetComponent().WaterReceiverType=WaterType.water; } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("xhs"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; FloorMessage mess = obj[i].GetComponentInParent(); obj[i].gameObject.GetComponent().gameObjType = CloneObjType.XHS; obj[i].gameObject.GetComponent().buildNum = mess.buildNum; obj[i].gameObject.GetComponent().interlayerNum = mess.interlayerNum; obj[i].gameObject.GetComponent().floorNum = mess.floorNum; } } } } [MenuItem("SceneToolNew/SetShiWaiZhutiSoldierRoad")] public static void SetShiWaiZhutiSoldierRoad() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.layer == LayerMask.NameToLayer("ManRode")) { if (!obj[i].gameObject.GetComponent()) { //Debug.Log(obj[i].name); if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(2, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("ShiWaiSoldier"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; FloorMessage mess = obj[i].GetComponentInParent(); obj[i].gameObject.GetComponent().gameObjType = CloneObjType.StaticGameObject; obj[i].gameObject.GetComponent().buildNum = mess.buildNum; obj[i].gameObject.GetComponent().interlayerNum = mess.interlayerNum; obj[i].gameObject.GetComponent().floorNum = mess.floorNum; } } } } [MenuItem("SceneToolNew/ClearMissSprite")] public static void ClearMissSprite() { { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { var gameObject = obj[i].gameObject; object p = GameObjectUtility.RemoveMonoBehavioursWithMissingScript(gameObject); } } } [MenuItem("SceneToolNew/ChangeXFSP")] public static void ChangeXFSP() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); GameObject SP = Resources.Load("SP") as GameObject; for (int i = 0; i < obj.Length; i++) { if (obj[i].name.Contains("SP") && !obj[i].name.Contains("ziti")) { GameObject sp = GameObject.Instantiate(SP); sp.transform.parent = obj[i].transform; sp.name = "sp"; sp.transform.localPosition = new Vector3(0, 0f, 0f); } } } [MenuItem("SceneToolNew/SetGameobjId")] public static void SetGameobjId() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.GetComponent()) { if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(5, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } } } } [MenuItem("SceneToolNew/SetShiWaiXHSandPMS")] public static void SetShiWaiXHSandPMS() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if ((obj[i].gameObject.name.ToLower().Contains("xhs") || obj[i].gameObject.name.ToLower().Contains("pms")) && !obj[i].gameObject.name.ToLower().Contains("ziti")) { if (!obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } //if (!obj[i].gameObject.GetComponent()) //{ // obj[i].gameObject.AddComponent(); //} if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); obj[i].gameObject.GetComponent().WaterReceiverType = WaterType.water; } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(4, 1); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } CloneableEnums enumParent = obj[i].gameObject.GetComponent(); Transform Template = GameObject.Find("CloneEnums").transform.Find("xhs"); var CloneableEnums = Template.GetComponent(); enumParent.CloneableTypes = CloneableEnums.CloneableTypes; if (obj[i].gameObject.name.ToLower().Contains("pms")) { obj[i].GetComponent().WaterReceiverType = WaterType.both; } } } } } [MenuItem("SceneToolNew/SetSP")] public static void SetSP() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.name.ToLower().Contains("xfsp") &&!obj[i].gameObject.name.ToLower().Contains("ziti")) { if (!obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } if (obj[i].gameObject.GetComponent().gameObjID == 0) { long staticGameObjId = (long)GUID.NewGuid(9, 3); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } obj[i].gameObject.GetComponent().gameObjType = CloneObjType.ZDSP; } } } } [MenuItem("SceneToolNew/SetDisaster")] public static void SetDisaster() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.GetComponent() && !obj[i].gameObject.name.ToLower().Contains("ziti")&& !obj[i].gameObject.name.ToLower().Contains("name")) { if (obj[i].gameObject.GetComponent()) { CloneableEnums ce = obj[i].GetComponent(); if (!ce.CloneableTypes.Contains(CloneObjType.FireNormal)) { ce.CloneableTypes.Add(CloneObjType.FireNormal); } if (!ce.CloneableTypes.Contains(CloneObjType.FireOpenType)) { ce.CloneableTypes.Add(CloneObjType.FireOpenType); } if (!ce.CloneableTypes.Contains(CloneObjType.FireHuge)) { ce.CloneableTypes.Add(CloneObjType.FireHuge); } if (!ce.CloneableTypes.Contains(CloneObjType.FireBreakThrough)) { ce.CloneableTypes.Add(CloneObjType.FireBreakThrough); } if (!ce.CloneableTypes.Contains(CloneObjType.SmokeNormal)) { ce.CloneableTypes.Add(CloneObjType.SmokeNormal); } if (!ce.CloneableTypes.Contains(CloneObjType.Bomb)) { ce.CloneableTypes.Add(CloneObjType.Bomb); } } } } } [MenuItem("SceneToolNew/SetGuanBi")] public static void SetGuanBi() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.GetComponent()) { if (!obj[i].gameObject.GetComponent()) { obj[i].gameObject.AddComponent(); } CloneableEnums ce = obj[i].GetComponent(); if (!ce.CloneableTypes.Contains(CloneObjType.Splash)) { ce.CloneableTypes.Add(CloneObjType.Splash); } if (!ce.CloneableTypes.Contains(CloneObjType.Boilover)) { ce.CloneableTypes.Add(CloneObjType.Boilover); } } } } [MenuItem("SceneToolNew/ResertGameObjId")] public static void ResertGameObjId() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); EntitiesManager.Instance.Reset(); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.GetComponent()) { if (obj[i].gameObject.GetComponent()) { obj[i].gameObject.GetComponent().gameObjID = 0; long staticGameObjId = (long)GUID.NewGuid(9, 2); obj[i].gameObject.GetComponent().SetGameObjID(staticGameObjId); } } } } //[MenuItem("SceneToolNew/ResertSP")] //public static void ResertSP() //{ // Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); // for (int i = 0; i < obj.Length; i++) // { // if (obj[i].gameObject.name.ToLower().Contains("xfsp") // && !obj[i].gameObject.name.ToLower().Contains("ziti")) // { // obj[i].gameObject.des // } // } //} [MenuItem("SceneToolNew/ChenkName")] public static void ChenkName() { Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); for (int i = 0; i < obj.Length; i++) { if (obj[i].gameObject.GetComponent()) { // if (obj[i].gameObject.GetComponent().convex==true) { Debug.Log(obj[i].gameObject.name); } } } } }