Compare commits

...

2 Commits

  1. 3
      .gitmodules
  2. 6
      .vsconfig
  3. 8
      Assets/01YanLaiSuiDao/Scenes/BuildingScene.meta
  4. 24353
      Assets/01YanLaiSuiDao/Scenes/BuildingScene.unity
  5. 2
      Assets/01YanLaiSuiDao/Scenes/BuildingScene.unity.meta
  6. BIN
      Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavCar.asset
  7. 8
      Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavCar.asset.meta
  8. BIN
      Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavMan.asset
  9. 8
      Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavMan.asset.meta
  10. 26405
      Assets/01YanLaiSuiDao/YLSD.prefab
  11. 8
      Assets/CloneTypesTemplate.meta
  12. 8
      Assets/CloneTypesTemplate/Editor.meta
  13. 636
      Assets/CloneTypesTemplate/Editor/SceneTool.cs
  14. 11
      Assets/CloneTypesTemplate/Editor/SceneTool.cs.meta
  15. 185
      Assets/CloneTypesTemplate/TheCarRoad.prefab
  16. 7
      Assets/CloneTypesTemplate/TheCarRoad.prefab.meta
  17. 1
      Assets/MscPublic2
  18. 8
      Assets/MscPublic2.meta
  19. 8
      Assets/StreamingAssets.meta
  20. 8
      Assets/StreamingAssets/AssetBundles.meta
  21. 8
      Assets/StreamingAssets/AssetBundles/YLSDAB.meta
  22. BIN
      Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB
  23. 7
      Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB.manifest
  24. 7
      Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB.manifest.meta
  25. 7
      Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB.meta
  26. BIN
      Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene
  27. 72
      Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene.manifest
  28. 7
      Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene.manifest.meta
  29. 7
      Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene.meta

3
.gitmodules vendored

@ -0,0 +1,3 @@
[submodule "Assets/MscPublic2"]
path = Assets/MscPublic2
url = http://121.36.37.70:3000/AX-ORG/MscPublic2.git

6
.vsconfig

@ -0,0 +1,6 @@
{
"version": "1.0",
"components": [
"Microsoft.VisualStudio.Workload.ManagedGame"
]
}

8
Assets/01YanLaiSuiDao/Scenes/BuildingScene.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d7bb0764decf6c6429a3c5acf0ba57ad
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

24353
Assets/01YanLaiSuiDao/Scenes/BuildingScene.unity

File diff suppressed because it is too large Load Diff

2
Assets/01YanLaiSuiDao/Scenes/BuildingScene.unity.meta

@ -3,5 +3,5 @@ guid: 77bc3992f0f721644a1721e6e139a363
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleName: buildingscene
assetBundleVariant:

BIN
Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavCar.asset

Binary file not shown.

8
Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavCar.asset.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3385b01b6536c0c49a57413fd04cecf6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 23800000
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavMan.asset

Binary file not shown.

8
Assets/01YanLaiSuiDao/Scenes/BuildingScene/NavMesh-NavMan.asset.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 25c0629f661704d4bb1f0ff5da6393c4
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 23800000
userData:
assetBundleName:
assetBundleVariant:

26405
Assets/01YanLaiSuiDao/YLSD.prefab

File diff suppressed because it is too large Load Diff

8
Assets/CloneTypesTemplate.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c3ae94aa52cc64043b43fa51075dfefa
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/CloneTypesTemplate/Editor.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a688944dd20111445ba6563f5912b431
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

636
Assets/CloneTypesTemplate/Editor/SceneTool.cs

@ -0,0 +1,636 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.AI;
using System.IO;
using System.Text;
using System;
public class SceneTool
{
[MenuItem("SceneTool/SetFloorMessage")]//添加FloorMessage脚本绑定楼层信息
public static void SetFloorMessage()
{
Transform neiParent = GameObject.Find("shinei").transform.GetChild(0);
for (int i = 0; i < neiParent.childCount; i++)
{
//Debug.Log(neiParent.GetChild(i).name);
if (!neiParent.GetChild(i).GetComponent<FloorMessage>())
{
neiParent.GetChild(i).gameObject.AddComponent<FloorMessage>();
}
FloorMessage msg = neiParent.GetChild(i).GetComponent<FloorMessage>();
msg.targetTrans = GetTarget(neiParent.GetChild(i));
msg.buildNum = neiParent.name;
if (!neiParent.GetChild(i).name.ToLower().Contains("m"))
{
string floornum = neiParent.GetChild(i).name.Substring
(neiParent.GetChild(i).name.ToLower().IndexOf("nei") + 3, neiParent.GetChild(i).name.Length - 3);
msg.floorNum = int.Parse(floornum);
msg.interlayerNum = 0;
}
else
{
msg.floorNum = int.Parse(neiParent.GetChild(i).name.Substring
(neiParent.GetChild(i).name.ToLower().IndexOf("nei") + 3, neiParent.GetChild(i).name.ToLower().IndexOf("m")
- neiParent.GetChild(i).name.ToLower().IndexOf("nei") - 3));
msg.interlayerNum = int.Parse(neiParent.GetChild(i).name.Substring
(neiParent.GetChild(i).name.ToLower().IndexOf("m") + 1, neiParent.GetChild(i).name.Length -
neiParent.GetChild(i).name.ToLower().IndexOf("m") - 1));
}
}
Transform waiParent = GameObject.Find("shiwai").transform.GetChild(0);
for (int i = 0; i < waiParent.childCount; i++)
{
//Debug.Log(waiParent.GetChild(i).name);
if (!waiParent.GetChild(i).GetComponent<FloorMessage>())
{
waiParent.GetChild(i).gameObject.AddComponent<FloorMessage>();
}
FloorMessage msg = waiParent.GetChild(i).GetComponent<FloorMessage>();
msg.buildNum = waiParent.name;
if (!waiParent.GetChild(i).name.ToLower().Contains("m"))
{
string floornum = waiParent.GetChild(i).name.Substring
(waiParent.GetChild(i).name.ToLower().IndexOf("wai") + 3, waiParent.GetChild(i).name.Length - 3);
msg.floorNum = int.Parse(floornum);
msg.interlayerNum = 0;
}
else
{
msg.floorNum = int.Parse(waiParent.GetChild(i).name.Substring
(waiParent.GetChild(i).name.ToLower().IndexOf("wai") + 3, waiParent.GetChild(i).name.ToLower().IndexOf("m")
- waiParent.GetChild(i).name.ToLower().IndexOf("wai") - 3));
msg.interlayerNum = int.Parse(waiParent.GetChild(i).name.Substring
(waiParent.GetChild(i).name.ToLower().IndexOf("m") + 1, waiParent.GetChild(i).name.Length -
waiParent.GetChild(i).name.ToLower().IndexOf("m") - 1));
}
}
}
static Transform GetTarget(Transform parent)
{
for (int i = 0; i < parent.childCount; i++)
{
if (parent.GetChild(i).name.ToLower().Contains("_floor")
|| parent.GetChild(i).name.ToLower().Contains("-floor")
)
{
return parent.GetChild(i);
}
}
return parent;
}
[MenuItem("SceneTool/Setshinei")]//添加寻路层(选中shinei对象设置,注:扶梯情况特殊没有包含)
public static void SetShiNei()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep);
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
if ((obj[i].name.ToLower().Contains("floor") ||//地面
obj[i].name.ToLower().Contains("lt") ||
obj[i].name.ToLower().Contains("chedao") ||
obj[i].name.ToLower().Contains("ft")) && !obj[i].name.ToLower().Contains("ltcs"))
{
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad");
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<PathFindable>())
{
obj[i].gameObject.AddComponent<PathFindable>();
}
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>())
{
obj[i].gameObject.AddComponent<CloneGameObjInfo>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.ShiNeiMan;
if (obj[i].GetComponentInParent<FloorMessage>())
{
FloorMessage fmg = obj[i].GetComponentInParent<FloorMessage>();
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.StaticGameObject;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = fmg.buildNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = fmg.floorNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = fmg.interlayerNum;
}
}
if (obj[i].name.ToLower().Contains("wall") ||//墙面
obj[i].name.ToLower().Contains("zhuzi"))
{
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad");
if (!obj[i].gameObject.GetComponent<NavMeshModifier>())
{
obj[i].gameObject.AddComponent<NavMeshModifier>();
}
NavMeshModifier mod = obj[i].gameObject.GetComponent<NavMeshModifier>();
mod.overrideArea = true;
mod.area = 1;
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
}
}
}
}
[MenuItem("SceneTool/SetshineiXHS")]//设置室内消火栓属性
public static void SetSNXHS()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep);
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].name.ToLower().Contains("xhs") &&
!obj[i].name.ToLower().Contains("xhs_name") &&
obj[i].GetComponent<MeshRenderer>())
{
if (!obj[i].gameObject.GetComponent<BoxCollider>())
{
obj[i].gameObject.AddComponent<BoxCollider>();
}
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>())
{
obj[i].gameObject.AddComponent<CloneGameObjInfo>();
}
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.IndoorFireHydrant;
if (!obj[i].gameObject.GetComponent<InDoorHydrantMessage>())
{
obj[i].gameObject.AddComponent<InDoorHydrantMessage>();
}
if (!obj[i].gameObject.GetComponent<WaterSource>())
{
obj[i].gameObject.AddComponent<WaterSource>();
}
if (obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjID == 0)
{
long staticGameObjId = (long)GUID.NewGuid(1, 1);
obj[i].gameObject.GetComponent<CloneGameObjInfo>().SetGameObjID(staticGameObjId);
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.ShiNeiXHS;
if (obj[i].GetComponentInParent<FloorMessage>())
{
FloorMessage fmg = obj[i].GetComponentInParent<FloorMessage>();
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = fmg.buildNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = fmg.floorNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = fmg.interlayerNum;
}
}
}
}
[MenuItem("SceneTool/DiXiaLouDing/CheNengZou")]//地面的楼顶(车能走),常见为地下建筑上的公路
public static void DiXiaLouDingCheNengZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("CarRoad");
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<PathFindable>())
{
obj[i].gameObject.AddComponent<PathFindable>();
}
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>())
{
obj[i].gameObject.AddComponent<CloneGameObjInfo>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.ShiWaiCar;
if (obj[i].GetComponentInParent<FloorMessage>())
{
FloorMessage fmg = obj[i].GetComponentInParent<FloorMessage>();
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.StaticGameObject;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = fmg.buildNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = fmg.floorNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = fmg.interlayerNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().SpecialTag = "楼顶";
}
}
}
}
}
[MenuItem("SceneTool/DiXiaLouDing/RenNengZou")]//地面的楼顶(人能走),常见为地下建筑上的小路
public static void DiXiaLouDingRenNengZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad");
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<PathFindable>())
{
obj[i].gameObject.AddComponent<PathFindable>();
}
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>())
{
obj[i].gameObject.AddComponent<CloneGameObjInfo>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.ShiWaiMan;
if (obj[i].GetComponentInParent<FloorMessage>())
{
FloorMessage fmg = obj[i].GetComponentInParent<FloorMessage>();
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.StaticGameObject;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = fmg.buildNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = fmg.floorNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = fmg.interlayerNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().SpecialTag = "楼顶";
}
}
}
}
}
[MenuItem("SceneTool/DiXiaLouDing/DouBuZou")]//地面的楼顶(都不能走),常见为地下建筑上的花坛
public static void DiXiaLouDingDouBuZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("CarRoad");
if (!obj[i].gameObject.GetComponent<NavMeshModifier>())
{
obj[i].gameObject.AddComponent<NavMeshModifier>();
}
NavMeshModifier mod = obj[i].gameObject.GetComponent<NavMeshModifier>();
mod.overrideArea = true;
mod.area = 1;
}
}
}
}
[MenuItem("SceneTool/CheckEmpty")]
public static void CheckEmpty()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<CloneableEnums>() && obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Count > 0)
{
if (!obj[i].GetComponent<CloneEnumsHelp>())
{
Debug.Log(obj[i].name);
}
}
if (obj[i].GetComponent<CloneEnumsHelp>())
{
if (obj[i].GetComponent<CloneEnumsHelp>().cloneOnFloorType < CloneOnFloorType.ShiWaiCar ||
obj[i].GetComponent<CloneEnumsHelp>().cloneOnFloorType > CloneOnFloorType.GuanQuDiMian)
{
Debug.Log(obj[i].name);
}
}
}
}
}
[MenuItem("SceneTool/PuTongLouDing/RenNengZou")]//普通的楼顶(人能走),常见为地上建筑的楼顶地板
public static void PuTongLouDingRenNengZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad");
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<PathFindable>())
{
obj[i].gameObject.AddComponent<PathFindable>();
}
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>())
{
obj[i].gameObject.AddComponent<CloneGameObjInfo>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.LouDing;
if (obj[i].GetComponentInParent<FloorMessage>())
{
FloorMessage fmg = obj[i].GetComponentInParent<FloorMessage>();
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.StaticGameObject;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = fmg.buildNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = fmg.floorNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = fmg.interlayerNum;
obj[i].gameObject.GetComponent<CloneGameObjInfo>().SpecialTag = "楼顶";
}
}
}
}
}
[MenuItem("SceneTool/PuTongLouDing/DouBuZou")]//普通的楼顶(都不能走)
public static void PuTongLouDingDouBuZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad");
if (!obj[i].gameObject.GetComponent<NavMeshModifier>())
{
obj[i].gameObject.AddComponent<NavMeshModifier>();
}
NavMeshModifier mod = obj[i].gameObject.GetComponent<NavMeshModifier>();
mod.overrideArea = true;
mod.area = 1;
}
}
}
}
[MenuItem("SceneTool/ShiWai/CheNengZou")]//地面(车能走),常见为公路
public static void ShiWaiCheNengZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("CarRoad");
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<PathFindable>())
{
obj[i].gameObject.AddComponent<PathFindable>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.ShiWaiCar;
}
}
}
}
[MenuItem("SceneTool/ShiWai/RenNengZou")]//地面(人能走),常见为小路
public static void ShiWaiRenNengZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad");
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<PathFindable>())
{
obj[i].gameObject.AddComponent<PathFindable>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.ShiWaiMan;
}
}
}
}
[MenuItem("SceneTool/ShiWai/DouBuZou")]//地面(都不能走),常见为花坛
public static void ShiWaiDouBuZou()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
obj[i].gameObject.layer = LayerMask.NameToLayer("CarRoad");
if (!obj[i].gameObject.GetComponent<NavMeshModifier>())
{
obj[i].gameObject.AddComponent<NavMeshModifier>();
}
NavMeshModifier mod = obj[i].gameObject.GetComponent<NavMeshModifier>();
mod.overrideArea = true;
mod.area = 1;
}
}
}
}
[MenuItem("SceneTool/TeShu/YouGuanDing")]//油罐顶
public static void YouGuanDing()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.YouGuanDing;
}
}
}
}
[MenuItem("SceneTool/TeShu/YouGuanBi")]//油罐壁
public static void YouGuanBi()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.YouGuanBi;
}
}
}
}
[MenuItem("SceneTool/TeShu/WeiXianPinYunShuChe")]//危险运输车
public static void WeiXianPinYunShuChe()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered);
{
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].GetComponent<MeshRenderer>())
{
if (!obj[i].gameObject.GetComponent<MeshCollider>())
{
obj[i].gameObject.AddComponent<MeshCollider>();
}
if (!obj[i].gameObject.GetComponent<CloneableEnums>())
{
obj[i].gameObject.AddComponent<CloneableEnums>();
}
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
CloneEnumsHelp cloneEnumsHelp = obj[i].gameObject.GetComponent<CloneEnumsHelp>();
cloneEnumsHelp.cloneOnFloorType = CloneOnFloorType.WeiXianPinYunShuChe;
}
}
}
}
[MenuItem("SceneTool/AddNewScripts")]//优化增加新的脚本
public static void AddNewScripts()
{
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep);
for (int i = 0; i < obj.Length; i++)
{
if (obj[i].gameObject.activeInHierarchy && obj[i].gameObject.GetComponent<CloneableEnums>() && obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Count > 0)
{
if (!obj[i].gameObject.GetComponent<CloneEnumsHelp>())
{
obj[i].gameObject.AddComponent<CloneEnumsHelp>();
}
var count = obj[i].GetComponent<CloneableEnums>().CloneableTypes.Count;
if (count == 80)// 室外车能走
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.ShiWaiCar;
}
else if (count == 35 && hasParentByName(obj[i].gameObject, "shinei"))// 室内人能走
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.ShiNeiMan;
}
else if (count == 35 && hasParentByName(obj[i].gameObject, "shiwai"))// 楼顶
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.LouDing;
}
else if (count == 47)// 室外人能走
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.ShiWaiMan;
}
else if (obj[i].gameObject.GetComponent<InDoorHydrantMessage>())// 室内消火栓
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.ShiNeiXHS;
}
else if (count == 35 && !obj[i].gameObject.GetComponent<CloneGameObjInfo>())// 室外人
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.ShiWaiMan;
}
else if (count == 35 && obj[i].gameObject.GetComponent<CloneGameObjInfo>())// 室内人
{
obj[i].gameObject.GetComponent<CloneEnumsHelp>().cloneOnFloorType = CloneOnFloorType.ShiNeiMan;
}
else
{
Debug.Log("警告,有对象没有绑定上脚本" + obj[i].name);
}
}
}
}
private static bool hasParentByName(GameObject gameObject, string parentName)
{
if (gameObject.transform.parent)
{
if (gameObject.transform.parent.name == parentName)
{
return true;
}
else
{
return hasParentByName(gameObject.transform.parent.gameObject, parentName);
}
}
else
{
return false;
}
}
}

11
Assets/CloneTypesTemplate/Editor/SceneTool.cs.meta

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 897c231eaac7aa04686627c31697e0ad
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

185
Assets/CloneTypesTemplate/TheCarRoad.prefab

@ -0,0 +1,185 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &1448480874978764806
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2036843565592825570}
- component: {fileID: 4192392774204234242}
m_Layer: 0
m_Name: ShiWaiLouDing
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2036843565592825570
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1448480874978764806}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1375686834103553258}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &4192392774204234242
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1448480874978764806}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b133d14efd54f9841a1659ef37479be7, type: 3}
m_Name:
m_EditorClassIdentifier:
CloneableTypes: c8000000ca000000cb000000cc000000d0000000d10000002c0100005f01000060010000610100006401000067010000680100006a0100006b01000090010000d200000071010000260200002702000028020000290200002a0200002b0200002c0200002d0200002e0200002f0200003002000064020000650200006602000067020000680200006902000072010000
isHandleCloneHitPoint: 0
--- !u!1 &3862791060661072280
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5957534287860957307}
- component: {fileID: 2554234015808576151}
m_Layer: 0
m_Name: ShiNeiFloor
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5957534287860957307
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3862791060661072280}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1375686834103553258}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2554234015808576151
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3862791060661072280}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b133d14efd54f9841a1659ef37479be7, type: 3}
m_Name:
m_EditorClassIdentifier:
CloneableTypes: c8000000ca000000cb000000cc000000d0000000d10000002c0100005f01000060010000610100006401000067010000680100006a0100006b01000090010000d200000071010000260200002702000028020000290200002a0200002b0200002c0200002d0200002e0200002f02000030020000640200006502000066020000670200006802000069020000d300000072010000
isHandleCloneHitPoint: 0
--- !u!1 &5062027077239370685
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1375686834103553258}
- component: {fileID: 3247774623453244617}
m_Layer: 0
m_Name: TheCarRoad
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1375686834103553258
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5062027077239370685}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 5957534287860957307}
- {fileID: 5214412471344223968}
- {fileID: 2036843565592825570}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &3247774623453244617
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5062027077239370685}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b133d14efd54f9841a1659ef37479be7, type: 3}
m_Name:
m_EditorClassIdentifier:
CloneableTypes: c8000000ca000000cb000000cc000000d0000000d1000000fa000000fb000000fc000000fd000000fe000000ff000000000100000101000002010000030100000401000005010000060100000701000008010000090100000a0100000b0100000c0100000d0100002c0100002d0100002e0100002f0100005e0100005f010000600100006101000062010000630100006401000065010000660100006701000068010000690100006a0100006b0100006c0100006e0100006f0100007001000090010000d200000071010000260200002702000028020000290200002a0200002b0200002c0200002d0200002e0200002f0200003002000058020000590200005a0200005b0200005c0200005d0200005e0200005f0200006002000061020000620200006302000064020000650200006602000067020000680200006902000073010000d4000000d500000072010000
isHandleCloneHitPoint: 0
--- !u!1 &5776162328859091251
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 5214412471344223968}
- component: {fileID: 8791578464750648927}
m_Layer: 0
m_Name: ShiWaiSolider
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &5214412471344223968
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5776162328859091251}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1375686834103553258}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &8791578464750648927
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5776162328859091251}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b133d14efd54f9841a1659ef37479be7, type: 3}
m_Name:
m_EditorClassIdentifier:
CloneableTypes: c8000000ca000000cb000000cc000000d0000000d10000002c0100002d0100002f0100005e0100005f010000600100006101000062010000630100006401000065010000660100006701000068010000690100006a0100006b0100006c0100006e0100006f010000700100009001000071010000d2000000260200002702000028020000290200002a0200002c0200002d0200002e0200002f020000640200006502000066020000670200006802000069020000300200002b02000072010000
isHandleCloneHitPoint: 0

7
Assets/CloneTypesTemplate/TheCarRoad.prefab.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b6368959a808e804c9e4a1afe87a6abd
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1
Assets/MscPublic2

@ -0,0 +1 @@
Subproject commit 8cf275dfd2efd7d3950b74077ad21ef5265fffc8

8
Assets/MscPublic2.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7f5c16ea361580c429b4b0d403102424
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/StreamingAssets.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 8adb657d22d8bfe469823832308ebaf4
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/StreamingAssets/AssetBundles.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: a293b0a451b174e4fb394291c249f14c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/StreamingAssets/AssetBundles/YLSDAB.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d20b759403e1cf44996555ad3b4bc167
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB

Binary file not shown.

7
Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB.manifest

@ -0,0 +1,7 @@
ManifestFileVersion: 0
CRC: 3806168102
AssetBundleManifest:
AssetBundleInfos:
Info_0:
Name: buildingscene
Dependencies: {}

7
Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB.manifest.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 3a24d296dcaa7c145911ec72680e33f3
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

7
Assets/StreamingAssets/AssetBundles/YLSDAB/YLSDAB.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 953f6ba6433d861498f98fce460715b9
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene

Binary file not shown.

72
Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene.manifest

@ -0,0 +1,72 @@
ManifestFileVersion: 0
CRC: 1351170531
Hashes:
AssetFileHash:
serializedVersion: 2
Hash: ca7e716392eae8b70f503f770effaa18
TypeTreeHash:
serializedVersion: 2
Hash: 19842d3b394de8e0a8fa5fa202755ca1
HashAppended: 0
ClassTypes:
- Class: 1
Script: {instanceID: 0}
- Class: 4
Script: {instanceID: 0}
- Class: 21
Script: {instanceID: 0}
- Class: 23
Script: {instanceID: 0}
- Class: 28
Script: {instanceID: 0}
- Class: 33
Script: {instanceID: 0}
- Class: 43
Script: {instanceID: 0}
- Class: 48
Script: {instanceID: 0}
- Class: 64
Script: {instanceID: 0}
- Class: 65
Script: {instanceID: 0}
- Class: 89
Script: {instanceID: 0}
- Class: 104
Script: {instanceID: 0}
- Class: 108
Script: {instanceID: 0}
- Class: 114
Script: {fileID: 11500000, guid: 1e3fdca004f2d45fe8abbed571a8abd5, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 6eeb5dc026fdf4b488bc7ae0138ab719, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 9d71527466ad15c4f8756733306d3825, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: cd045cd576d08b7499b4bc0a0d498901, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: b1b3b937514eb774497e3bf22acba90e, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 0b9c305761a78ca41b5f94428fa22b82, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 8c17c20b2ca967847b4117564cdc4c84, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 7a5ac11cc976e418e8d13136b07e1f52, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: e01c388cf4175aa49b4973deb437d754, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: b8b046bc0ab99e94cb2c70fd441b8fc7, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: b133d14efd54f9841a1659ef37479be7, type: 3}
- Class: 114
Script: {fileID: 11500000, guid: 49a6ba4f46ec21b4c8a83dce618eda97, type: 3}
- Class: 115
Script: {instanceID: 0}
- Class: 157
Script: {instanceID: 0}
- Class: 238
Script: {instanceID: 0}
- Class: 258
Script: {instanceID: 0}
Assets:
- Assets/01YanLaiSuiDao/Scenes/BuildingScene.unity
Dependencies: []

7
Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene.manifest.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: fa60f9ceb8ef40b4c9f6d64015a8061d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

7
Assets/StreamingAssets/AssetBundles/YLSDAB/buildingscene.meta

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: afe4fc53abed80440b97f514e7547184
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save