Browse Source
修改导调组罐区设置根据场景类型显示/隐藏 修改演练开始后不能设置罐区信息 替换场景中的固定水炮,添加水炮根据类型(水炮/泡沫炮)出水/泡沫 修改主菜单演习/练习模式图片加载根据本场景加载,需要先修改Resource/Common下的资源图片 Signed-off-by: DESKTOP-KFV16CV\cyt <2268162076@qq.com>master
23 changed files with 544935 additions and 316210 deletions
File diff suppressed because it is too large
Load Diff
@ -1,481 +1,514 @@
|
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEditor; |
||||
using UnityEngine.AI; |
||||
using System.IO; |
||||
using System.Text; |
||||
using System; |
||||
|
||||
public class SceneToolFloor |
||||
{ |
||||
[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 - 4*/); |
||||
|
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 0; |
||||
} |
||||
else |
||||
{ |
||||
string floornum = neiParent.GetChild(i).name.Substring(4); |
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 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 - 4*/); |
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 0; |
||||
} |
||||
else |
||||
{ |
||||
string floornum = waiParent.GetChild(i).name.Substring(4); |
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 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/SetNavLayershinei")]//添加寻路层(选中shinei对象设置,注:扶梯情况特殊没有包含) |
||||
public static void SetNavLayer() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums shineienums = GameObject.Find("CloneAbleEnumsParent").transform.Find("ShiNeiFloor").GetComponent<CloneableEnums>(); |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].name.ToLower().Contains("_floor") ||//地面 |
||||
obj[i].name.ToLower().Contains("_floor") ||//地面 |
||||
obj[i].name.ToLower().Contains("-floor")) |
||||
{ |
||||
|
||||
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad"); |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
//obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = shineienums.CloneableTypes; |
||||
|
||||
} |
||||
if (obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Contains(CloneObjType.FirefightingRobot)) |
||||
{ |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Remove(CloneObjType.FirefightingRobot); |
||||
} |
||||
// CloneableEnums enumParent = obj[i].gameObject.GetComponent<CloneableEnums>(); |
||||
// GameObject CarRoad = GameObject.Find("FloorNei"); |
||||
// var CloneableEnums = CarRoad.GetComponent<CloneableEnums>(); |
||||
// enumParent.CloneableTypes = CloneableEnums.CloneableTypes; |
||||
if (obj[i].parent.GetComponent<FloorMessage>()) |
||||
{ |
||||
FloorMessage fmg = obj[i].parent.GetComponent<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].parent.parent.GetComponent<FloorMessage>()) |
||||
{ |
||||
FloorMessage fmg = obj[i].parent.parent.GetComponent<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("_wall")) |
||||
//{ |
||||
// obj[i].gameObject.layer = LayerMask.NameToLayer("Wall"); |
||||
// // 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>(); |
||||
// // } |
||||
//} |
||||
//if (obj[i].name.ToLower().Contains("lt")&& !obj[i].name.ToLower().Contains("name"))//楼梯 |
||||
//{ |
||||
// obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad"); |
||||
// if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
// //obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
// obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = shineienums.CloneableTypes; |
||||
|
||||
// } |
||||
// if (obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Contains(CloneObjType.FirefightingRobot)) |
||||
// { |
||||
// obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Remove(CloneObjType.FirefightingRobot); |
||||
// } |
||||
// // CloneableEnums enumParent = obj[i].gameObject.GetComponent<CloneableEnums>(); |
||||
// // GameObject CarRoad = GameObject.Find("FloorNei"); |
||||
// // var CloneableEnums = CarRoad.GetComponent<CloneableEnums>(); |
||||
// // enumParent.CloneableTypes = CloneableEnums.CloneableTypes; |
||||
// if (obj[i].parent.GetComponent<FloorMessage>()) |
||||
// { |
||||
// FloorMessage fmg = obj[i].parent.GetComponent<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].parent.parent.GetComponent<FloorMessage>()) |
||||
// { |
||||
// FloorMessage fmg = obj[i].parent.parent.GetComponent<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; |
||||
// } |
||||
//} |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/GetNavLayerCarRoad")] |
||||
public static void GetNavLayerCarRoad() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].gameObject.layer == LayerMask.NameToLayer("CarRoad")) |
||||
{ |
||||
// if (!obj[i].gameObject.GetComponent<NavMeshModifier>()) |
||||
{ |
||||
Debug.Log(obj[i].name); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
[MenuItem("SceneTool/SetNavLayerCarRoad")]//高层设置车辆寻路层,添加脚本及设置脚本属性 |
||||
public static void SetNavLayerCarRoad() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums carenums = GameObject.Find("CloneAbleEnumsParent").transform.Find("CarLode").GetComponent<CloneableEnums>(); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].gameObject.layer == LayerMask.NameToLayer("CarRoad")&& |
||||
!obj[i].gameObject.GetComponent<NavMeshModifier>()) |
||||
{ |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = carenums.CloneableTypes; |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/SetNavLayerShiwaiHumanRoad")] |
||||
public static void SetNavLayershiwaiHumanRoad() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums shiwaienums = GameObject.Find("CloneAbleEnumsParent").transform.Find("ShiWaiFloor").GetComponent<CloneableEnums>(); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].gameObject.layer == LayerMask.NameToLayer("SoldierRoad")) |
||||
{ |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = shiwaienums.CloneableTypes; |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/ReadCloneTypes")] |
||||
static void ReadCloneTypes() |
||||
{ |
||||
string path = Application.dataPath + "/Floors.txt"; |
||||
string str = File.ReadAllText(path, Encoding.UTF8); |
||||
string[] EnumStrList = str.Split(','); |
||||
//List<CloneObjType> EnmuList = new List<CloneObjType>(); |
||||
//foreach (var item in EnumStrList) |
||||
//{ |
||||
// if (!string.IsNullOrEmpty(item)) |
||||
// { |
||||
// CloneObjType type = (CloneObjType)Enum.Parse(typeof(CloneObjType), item); |
||||
// EnmuList.Add(type); |
||||
// } |
||||
//} |
||||
//GameObject CarRoad = GameObject.Find("FloorNei"); |
||||
//if (!CarRoad.GetComponent<CloneableEnums>()) |
||||
//{ |
||||
// CarRoad.AddComponent<CloneableEnums>(); |
||||
//} |
||||
//var CloneableEnums = CarRoad.GetComponent<CloneableEnums>(); |
||||
//CloneableEnums.CloneableTypes = EnmuList; |
||||
} |
||||
[MenuItem("SceneTool/AddColider")] |
||||
static void AddColider() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered); |
||||
{ |
||||
Debug.Log(obj[0].name); |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/SetShiNeiXHS")] |
||||
public static void SetShiNeiXHS() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums SNXHS = GameObject.Find("CloneAbleEnumsParent").transform.Find("SNXHS").GetComponent<CloneableEnums>(); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
FloorMessage floormessage = obj[i].GetComponentInParent<FloorMessage>(); |
||||
if (obj[i].gameObject.name.ToUpper().Contains("SNXH")&& obj[i].gameObject.GetComponent<Animator>()) |
||||
{ |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
|
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<WaterSource>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<WaterSource>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<WATER_SOURCE_INFO_SYNC>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<WATER_SOURCE_INFO_SYNC>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<XFSS>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<XFSS>(); |
||||
} |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = floormessage.buildNum; |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = floormessage.floorNum; |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = floormessage.interlayerNum; |
||||
obj[i].gameObject.GetComponent<XFSS>().type = XFSSType.室内消火栓; |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = SNXHS.CloneableTypes; |
||||
obj[i].gameObject.GetComponent<WaterSource>().water = true; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
/// <summary> |
||||
/// 作战部署消火栓等图标显示Quad添加,需要先在需要的物体上添加XFSS脚本 |
||||
/// </summary> |
||||
[MenuItem("SceneTool/AddQuad")] |
||||
public static void AddQuad() |
||||
{ |
||||
QuadMat quadMat = GameObject.Find("QuadMat").GetComponent<QuadMat>(); |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].GetComponent<XFSS>()) |
||||
{ |
||||
GameObject quad = GameObject.Instantiate(quadMat.Quad); |
||||
quad.name = "Quad"; |
||||
quad.transform.parent = obj[i].transform; |
||||
quad.transform.localPosition = Vector3.up * 10; |
||||
switch (obj[i].GetComponent<XFSS>().type) |
||||
{ |
||||
case XFSSType.地上消火栓: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[0]; |
||||
break; |
||||
case XFSSType.泡沫栓: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[1]; |
||||
break; |
||||
case XFSSType.水泵接合器: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[2]; |
||||
break; |
||||
case XFSSType.水炮: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[3]; |
||||
break; |
||||
case XFSSType.室内消火栓: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[0]; |
||||
break; |
||||
default: |
||||
break; |
||||
} |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
[MenuItem("SceneTool/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("SceneTool/SetOilNormal")] |
||||
public static void SetOilNormal() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
GameObject NornalPre = GameObject.Find("NormalPre"); |
||||
if (!obj[0].GetComponent<Mesh>()) |
||||
{ |
||||
//obj[0].gameObject.AddComponent<MeshFilter>(); |
||||
//obj[0].gameObject.GetComponent<MeshFilter>().mesh = NornalPre.GetComponent<MeshFilter>().mesh; |
||||
|
||||
// obj[0].gameObject.AddComponent<MeshRenderer>(); |
||||
obj[0].gameObject.GetComponent<MeshRenderer>().material = NornalPre.GetComponent<MeshRenderer>().material; |
||||
|
||||
//obj[0].gameObject.AddComponent<MeshCollider>(); |
||||
//obj[0].gameObject.GetComponent<MeshCollider>().sharedMesh = NornalPre.GetComponent<MeshCollider>().sharedMesh; |
||||
|
||||
obj[0].gameObject.AddComponent<CreateStaticObjID>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OilTankBase>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OilTankMessage>(); |
||||
|
||||
obj[0].gameObject.AddComponent<HideOilLevel>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OIL_TANK_INFO_SYNC>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OilTankDisasterRecord>(); |
||||
|
||||
obj[0].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[0].gameObject.GetComponent<CloneableEnums>().CloneableTypes = NornalPre.GetComponent<CloneableEnums>().CloneableTypes; |
||||
obj[0].gameObject.name = "Normal"; |
||||
} |
||||
} |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEditor; |
||||
using UnityEngine.AI; |
||||
using System.IO; |
||||
using System.Text; |
||||
using System; |
||||
|
||||
public class SceneToolFloor |
||||
{ |
||||
[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 - 4*/); |
||||
|
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 0; |
||||
} |
||||
else |
||||
{ |
||||
string floornum = neiParent.GetChild(i).name.Substring(4); |
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 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 - 4*/); |
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 0; |
||||
} |
||||
else |
||||
{ |
||||
string floornum = waiParent.GetChild(i).name.Substring(4); |
||||
msg.floorNum = int.Parse(floornum); |
||||
msg.interlayerNum = 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/SetNavLayershinei")]//添加寻路层(选中shinei对象设置,注:扶梯情况特殊没有包含) |
||||
public static void SetNavLayer() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums shineienums = GameObject.Find("CloneAbleEnumsParent").transform.Find("ShiNeiFloor").GetComponent<CloneableEnums>(); |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].name.ToLower().Contains("_floor") ||//地面 |
||||
obj[i].name.ToLower().Contains("_floor") ||//地面 |
||||
obj[i].name.ToLower().Contains("-floor")) |
||||
{ |
||||
|
||||
obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad"); |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
//obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = shineienums.CloneableTypes; |
||||
|
||||
} |
||||
if (obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Contains(CloneObjType.FirefightingRobot)) |
||||
{ |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Remove(CloneObjType.FirefightingRobot); |
||||
} |
||||
// CloneableEnums enumParent = obj[i].gameObject.GetComponent<CloneableEnums>(); |
||||
// GameObject CarRoad = GameObject.Find("FloorNei"); |
||||
// var CloneableEnums = CarRoad.GetComponent<CloneableEnums>(); |
||||
// enumParent.CloneableTypes = CloneableEnums.CloneableTypes; |
||||
if (obj[i].parent.GetComponent<FloorMessage>()) |
||||
{ |
||||
FloorMessage fmg = obj[i].parent.GetComponent<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].parent.parent.GetComponent<FloorMessage>()) |
||||
{ |
||||
FloorMessage fmg = obj[i].parent.parent.GetComponent<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("_wall")) |
||||
//{ |
||||
// obj[i].gameObject.layer = LayerMask.NameToLayer("Wall"); |
||||
// // 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>(); |
||||
// // } |
||||
//} |
||||
//if (obj[i].name.ToLower().Contains("lt")&& !obj[i].name.ToLower().Contains("name"))//楼梯 |
||||
//{ |
||||
// obj[i].gameObject.layer = LayerMask.NameToLayer("SoldierRoad"); |
||||
// if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
// //obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
// } |
||||
// if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
// { |
||||
// obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
// obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = shineienums.CloneableTypes; |
||||
|
||||
// } |
||||
// if (obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Contains(CloneObjType.FirefightingRobot)) |
||||
// { |
||||
// obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes.Remove(CloneObjType.FirefightingRobot); |
||||
// } |
||||
// // CloneableEnums enumParent = obj[i].gameObject.GetComponent<CloneableEnums>(); |
||||
// // GameObject CarRoad = GameObject.Find("FloorNei"); |
||||
// // var CloneableEnums = CarRoad.GetComponent<CloneableEnums>(); |
||||
// // enumParent.CloneableTypes = CloneableEnums.CloneableTypes; |
||||
// if (obj[i].parent.GetComponent<FloorMessage>()) |
||||
// { |
||||
// FloorMessage fmg = obj[i].parent.GetComponent<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].parent.parent.GetComponent<FloorMessage>()) |
||||
// { |
||||
// FloorMessage fmg = obj[i].parent.parent.GetComponent<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; |
||||
// } |
||||
//} |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/GetNavLayerCarRoad")] |
||||
public static void GetNavLayerCarRoad() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].gameObject.layer == LayerMask.NameToLayer("CarRoad")) |
||||
{ |
||||
// if (!obj[i].gameObject.GetComponent<NavMeshModifier>()) |
||||
{ |
||||
Debug.Log(obj[i].name); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
[MenuItem("SceneTool/SetNavLayerCarRoad")]//高层设置车辆寻路层,添加脚本及设置脚本属性 |
||||
public static void SetNavLayerCarRoad() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums carenums = GameObject.Find("CloneAbleEnumsParent").transform.Find("CarLode").GetComponent<CloneableEnums>(); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].gameObject.layer == LayerMask.NameToLayer("CarRoad")&& |
||||
!obj[i].gameObject.GetComponent<NavMeshModifier>()) |
||||
{ |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = carenums.CloneableTypes; |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/SetNavLayerShiwaiHumanRoad")] |
||||
public static void SetNavLayershiwaiHumanRoad() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums shiwaienums = GameObject.Find("CloneAbleEnumsParent").transform.Find("ShiWaiFloor").GetComponent<CloneableEnums>(); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].gameObject.layer == LayerMask.NameToLayer("SoldierRoad")) |
||||
{ |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<PathFindingClick>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<PathFindingClick>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = shiwaienums.CloneableTypes; |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().gameObjType = CloneObjType.staticGameObject; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/ReadCloneTypes")] |
||||
static void ReadCloneTypes() |
||||
{ |
||||
string path = Application.dataPath + "/Floors.txt"; |
||||
string str = File.ReadAllText(path, Encoding.UTF8); |
||||
string[] EnumStrList = str.Split(','); |
||||
//List<CloneObjType> EnmuList = new List<CloneObjType>(); |
||||
//foreach (var item in EnumStrList) |
||||
//{ |
||||
// if (!string.IsNullOrEmpty(item)) |
||||
// { |
||||
// CloneObjType type = (CloneObjType)Enum.Parse(typeof(CloneObjType), item); |
||||
// EnmuList.Add(type); |
||||
// } |
||||
//} |
||||
//GameObject CarRoad = GameObject.Find("FloorNei"); |
||||
//if (!CarRoad.GetComponent<CloneableEnums>()) |
||||
//{ |
||||
// CarRoad.AddComponent<CloneableEnums>(); |
||||
//} |
||||
//var CloneableEnums = CarRoad.GetComponent<CloneableEnums>(); |
||||
//CloneableEnums.CloneableTypes = EnmuList; |
||||
} |
||||
[MenuItem("SceneTool/AddColider")] |
||||
static void AddColider() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Unfiltered); |
||||
{ |
||||
Debug.Log(obj[0].name); |
||||
} |
||||
} |
||||
[MenuItem("SceneTool/SetShiNeiXHS")] |
||||
public static void SetShiNeiXHS() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
CloneableEnums SNXHS = GameObject.Find("CloneAbleEnumsParent").transform.Find("SNXHS").GetComponent<CloneableEnums>(); |
||||
{ |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
FloorMessage floormessage = obj[i].GetComponentInParent<FloorMessage>(); |
||||
if (obj[i].gameObject.name.ToUpper().Contains("SNXH")&& obj[i].gameObject.GetComponent<Animator>()) |
||||
{ |
||||
if (!obj[i].gameObject.GetComponent<MeshCollider>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<MeshCollider>(); |
||||
} |
||||
|
||||
if (!obj[i].gameObject.GetComponent<CreateStaticObjID>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CreateStaticObjID>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneableEnums>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneableEnums>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<CloneGameObjInfo>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<CloneGameObjInfo>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<WaterSource>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<WaterSource>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<WATER_SOURCE_INFO_SYNC>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<WATER_SOURCE_INFO_SYNC>(); |
||||
} |
||||
if (!obj[i].gameObject.GetComponent<XFSS>()) |
||||
{ |
||||
obj[i].gameObject.AddComponent<XFSS>(); |
||||
} |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().buildNum = floormessage.buildNum; |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().floorNum = floormessage.floorNum; |
||||
obj[i].gameObject.GetComponent<CloneGameObjInfo>().interlayerNum = floormessage.interlayerNum; |
||||
obj[i].gameObject.GetComponent<XFSS>().type = XFSSType.室内消火栓; |
||||
obj[i].gameObject.GetComponent<CloneableEnums>().CloneableTypes = SNXHS.CloneableTypes; |
||||
obj[i].gameObject.GetComponent<WaterSource>().water = true; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
/// <summary> |
||||
/// 作战部署消火栓等图标显示Quad添加,需要先在需要的物体上添加XFSS脚本 |
||||
/// </summary> |
||||
[MenuItem("SceneTool/AddQuad")] |
||||
public static void AddQuad() |
||||
{ |
||||
QuadMat quadMat = GameObject.Find("QuadMat").GetComponent<QuadMat>(); |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].GetComponent<XFSS>()) |
||||
{ |
||||
if (!obj[i].transform.Find("Quad")) |
||||
{ |
||||
GameObject quad = GameObject.Instantiate(quadMat.Quad); |
||||
quad.name = "Quad"; |
||||
quad.transform.parent = obj[i].transform; |
||||
quad.transform.localPosition = Vector3.up * 10; |
||||
switch (obj[i].GetComponent<XFSS>().type) |
||||
{ |
||||
case XFSSType.地上消火栓: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[0]; |
||||
break; |
||||
case XFSSType.泡沫栓: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[1]; |
||||
break; |
||||
case XFSSType.水泵接合器: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[2]; |
||||
break; |
||||
case XFSSType.水炮: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[3]; |
||||
break; |
||||
case XFSSType.室内消火栓: |
||||
quad.GetComponent<Renderer>().material = quadMat.mats[0]; |
||||
break; |
||||
default: |
||||
break; |
||||
} |
||||
quad.layer = LayerMask.NameToLayer("FightDeploy"); |
||||
obj[i].transform.Find("Quad").localScale = new Vector3(3, 3, 3); |
||||
} |
||||
else |
||||
{ |
||||
obj[i].transform.Find("Quad").gameObject.layer = LayerMask.NameToLayer("FightDeploy"); |
||||
obj[i].transform.Find("Quad").localScale = new Vector3(3, 3, 3); |
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
} |
||||
|
||||
[MenuItem("SceneTool/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("SceneTool/SetOilNormal")] |
||||
public static void SetOilNormal() |
||||
{ |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
GameObject NornalPre = GameObject.Find("NormalPre"); |
||||
if (!obj[0].GetComponent<Mesh>()) |
||||
{ |
||||
//obj[0].gameObject.AddComponent<MeshFilter>(); |
||||
//obj[0].gameObject.GetComponent<MeshFilter>().mesh = NornalPre.GetComponent<MeshFilter>().mesh; |
||||
|
||||
// obj[0].gameObject.AddComponent<MeshRenderer>(); |
||||
obj[0].gameObject.GetComponent<MeshRenderer>().material = NornalPre.GetComponent<MeshRenderer>().material; |
||||
|
||||
//obj[0].gameObject.AddComponent<MeshCollider>(); |
||||
//obj[0].gameObject.GetComponent<MeshCollider>().sharedMesh = NornalPre.GetComponent<MeshCollider>().sharedMesh; |
||||
|
||||
obj[0].gameObject.AddComponent<CreateStaticObjID>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OilTankBase>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OilTankMessage>(); |
||||
|
||||
obj[0].gameObject.AddComponent<HideOilLevel>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OIL_TANK_INFO_SYNC>(); |
||||
|
||||
obj[0].gameObject.AddComponent<OilTankDisasterRecord>(); |
||||
|
||||
obj[0].gameObject.AddComponent<CloneableEnums>(); |
||||
obj[0].gameObject.GetComponent<CloneableEnums>().CloneableTypes = NornalPre.GetComponent<CloneableEnums>().CloneableTypes; |
||||
obj[0].gameObject.name = "Normal"; |
||||
} |
||||
} |
||||
|
||||
/// <summary> |
||||
/// 替换场景中的水炮,适用于没有拆分但是需要出水的水炮 |
||||
/// </summary> |
||||
[MenuItem("SceneTool/ChangeShuiPao")] |
||||
public static void ChangeShuiPao() |
||||
{ |
||||
GameObject shuipaopre = Resources.Load<GameObject>("ShuiPao"); |
||||
Transform[] obj = Selection.GetTransforms(SelectionMode.Deep); |
||||
for (int i = 0; i < obj.Length; i++) |
||||
{ |
||||
if (obj[i].GetComponent<Collider>()) |
||||
{ |
||||
GameObject csp = GameObject.Instantiate(shuipaopre); |
||||
csp.transform.parent = obj[i].parent; |
||||
csp.transform.localPosition = obj[i].localPosition; |
||||
// csp.transform.localRotation = obj[i].localRotation; |
||||
csp.name = "shuipao" + i; |
||||
obj[i].gameObject.SetActive(false); |
||||
} |
||||
} |
||||
} |
||||
} |
File diff suppressed because it is too large
Load Diff
Before Width: | Height: | Size: 561 KiB After Width: | Height: | Size: 790 KiB |
After Width: | Height: | Size: 1.2 MiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 46f23e6c79c1fb841820300d49d00b4d |
||||
TextureImporter: |
||||
fileIDToRecycleName: {} |
||||
externalObjects: {} |
||||
serializedVersion: 9 |
||||
mipmaps: |
||||
mipMapMode: 0 |
||||
enableMipMap: 0 |
||||
sRGBTexture: 1 |
||||
linearTexture: 0 |
||||
fadeOut: 0 |
||||
borderMipMap: 0 |
||||
mipMapsPreserveCoverage: 0 |
||||
alphaTestReferenceValue: 0.5 |
||||
mipMapFadeDistanceStart: 1 |
||||
mipMapFadeDistanceEnd: 3 |
||||
bumpmap: |
||||
convertToNormalMap: 0 |
||||
externalNormalMap: 0 |
||||
heightScale: 0.25 |
||||
normalMapFilter: 0 |
||||
isReadable: 0 |
||||
streamingMipmaps: 0 |
||||
streamingMipmapsPriority: 0 |
||||
grayScaleToAlpha: 0 |
||||
generateCubemap: 6 |
||||
cubemapConvolution: 0 |
||||
seamlessCubemap: 0 |
||||
textureFormat: 1 |
||||
maxTextureSize: 2048 |
||||
textureSettings: |
||||
serializedVersion: 2 |
||||
filterMode: -1 |
||||
aniso: -1 |
||||
mipBias: -100 |
||||
wrapU: 1 |
||||
wrapV: 1 |
||||
wrapW: 1 |
||||
nPOTScale: 0 |
||||
lightmap: 0 |
||||
compressionQuality: 50 |
||||
spriteMode: 1 |
||||
spriteExtrude: 1 |
||||
spriteMeshType: 1 |
||||
alignment: 0 |
||||
spritePivot: {x: 0.5, y: 0.5} |
||||
spritePixelsToUnits: 100 |
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
||||
spriteGenerateFallbackPhysicsShape: 1 |
||||
alphaUsage: 1 |
||||
alphaIsTransparency: 1 |
||||
spriteTessellationDetail: -1 |
||||
textureType: 8 |
||||
textureShape: 1 |
||||
singleChannelComponent: 0 |
||||
maxTextureSizeSet: 0 |
||||
compressionQualitySet: 0 |
||||
textureFormatSet: 0 |
||||
platformSettings: |
||||
- serializedVersion: 2 |
||||
buildTarget: DefaultTexturePlatform |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: Standalone |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: WebGL |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
spriteSheet: |
||||
serializedVersion: 2 |
||||
sprites: [] |
||||
outline: [] |
||||
physicsShape: [] |
||||
bones: [] |
||||
spriteID: ad8b5b2563e8ad64bba533cc06ffa803 |
||||
vertices: [] |
||||
indices: |
||||
edges: [] |
||||
weights: [] |
||||
spritePackingTag: |
||||
pSDRemoveMatte: 0 |
||||
pSDShowRemoveMatteOption: 0 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
After Width: | Height: | Size: 706 KiB |
@ -0,0 +1,110 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 241afd6235fee5a4dbe33ad9e2f4f315 |
||||
TextureImporter: |
||||
fileIDToRecycleName: {} |
||||
externalObjects: {} |
||||
serializedVersion: 9 |
||||
mipmaps: |
||||
mipMapMode: 0 |
||||
enableMipMap: 0 |
||||
sRGBTexture: 1 |
||||
linearTexture: 0 |
||||
fadeOut: 0 |
||||
borderMipMap: 0 |
||||
mipMapsPreserveCoverage: 0 |
||||
alphaTestReferenceValue: 0.5 |
||||
mipMapFadeDistanceStart: 1 |
||||
mipMapFadeDistanceEnd: 3 |
||||
bumpmap: |
||||
convertToNormalMap: 0 |
||||
externalNormalMap: 0 |
||||
heightScale: 0.25 |
||||
normalMapFilter: 0 |
||||
isReadable: 0 |
||||
streamingMipmaps: 0 |
||||
streamingMipmapsPriority: 0 |
||||
grayScaleToAlpha: 0 |
||||
generateCubemap: 6 |
||||
cubemapConvolution: 0 |
||||
seamlessCubemap: 0 |
||||
textureFormat: 1 |
||||
maxTextureSize: 2048 |
||||
textureSettings: |
||||
serializedVersion: 2 |
||||
filterMode: -1 |
||||
aniso: -1 |
||||
mipBias: -100 |
||||
wrapU: 1 |
||||
wrapV: 1 |
||||
wrapW: 1 |
||||
nPOTScale: 0 |
||||
lightmap: 0 |
||||
compressionQuality: 50 |
||||
spriteMode: 1 |
||||
spriteExtrude: 1 |
||||
spriteMeshType: 1 |
||||
alignment: 0 |
||||
spritePivot: {x: 0.5, y: 0.5} |
||||
spritePixelsToUnits: 100 |
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0} |
||||
spriteGenerateFallbackPhysicsShape: 1 |
||||
alphaUsage: 1 |
||||
alphaIsTransparency: 1 |
||||
spriteTessellationDetail: -1 |
||||
textureType: 8 |
||||
textureShape: 1 |
||||
singleChannelComponent: 0 |
||||
maxTextureSizeSet: 0 |
||||
compressionQualitySet: 0 |
||||
textureFormatSet: 0 |
||||
platformSettings: |
||||
- serializedVersion: 2 |
||||
buildTarget: DefaultTexturePlatform |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: Standalone |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
- serializedVersion: 2 |
||||
buildTarget: WebGL |
||||
maxTextureSize: 2048 |
||||
resizeAlgorithm: 0 |
||||
textureFormat: -1 |
||||
textureCompression: 1 |
||||
compressionQuality: 50 |
||||
crunchedCompression: 0 |
||||
allowsAlphaSplitting: 0 |
||||
overridden: 0 |
||||
androidETC2FallbackOverride: 0 |
||||
spriteSheet: |
||||
serializedVersion: 2 |
||||
sprites: [] |
||||
outline: [] |
||||
physicsShape: [] |
||||
bones: [] |
||||
spriteID: ad8b5b2563e8ad64bba533cc06ffa803 |
||||
vertices: [] |
||||
indices: |
||||
edges: [] |
||||
weights: [] |
||||
spritePackingTag: |
||||
pSDRemoveMatte: 0 |
||||
pSDShowRemoveMatteOption: 0 |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -0,0 +1,561 @@
|
||||
%YAML 1.1 |
||||
%TAG !u! tag:unity3d.com,2011: |
||||
--- !u!1 &334728529289877715 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 4938766529170714014} |
||||
- component: {fileID: 8811782041922729742} |
||||
- component: {fileID: 1894096525626459083} |
||||
- component: {fileID: 275556624769203769} |
||||
- component: {fileID: 2104216789750643827} |
||||
m_Layer: 26 |
||||
m_Name: Quad |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!4 &4938766529170714014 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 334728529289877715} |
||||
m_LocalRotation: {x: 1, y: 0, z: 0, w: 0} |
||||
m_LocalPosition: {x: 0, y: 0, z: 9.2} |
||||
m_LocalScale: {x: 3, y: 3, z: 3} |
||||
m_Children: [] |
||||
m_Father: {fileID: 5574433776280100200} |
||||
m_RootOrder: 1 |
||||
m_LocalEulerAnglesHint: {x: 180, y: 0, z: 0} |
||||
--- !u!33 &8811782041922729742 |
||||
MeshFilter: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 334728529289877715} |
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
||||
--- !u!64 &1894096525626459083 |
||||
MeshCollider: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 334728529289877715} |
||||
m_Material: {fileID: 0} |
||||
m_IsTrigger: 0 |
||||
m_Enabled: 1 |
||||
serializedVersion: 3 |
||||
m_Convex: 0 |
||||
m_CookingOptions: 14 |
||||
m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} |
||||
--- !u!23 &275556624769203769 |
||||
MeshRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 334728529289877715} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 1 |
||||
m_ReceiveShadows: 1 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 1 |
||||
m_RendererPriority: 0 |
||||
m_Materials: |
||||
- {fileID: 2100000, guid: 3c4431d0e5b8e124faac885f4c65d72c, type: 2} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 1 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 3 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
||||
--- !u!114 &2104216789750643827 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 334728529289877715} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 2464d7cef42d4744b999e4d5e6d79de9, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
--- !u!1 &703996644367501529 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 5574433776280100200} |
||||
- component: {fileID: 193923743017039186} |
||||
- component: {fileID: 1775443225} |
||||
- component: {fileID: 1775443226} |
||||
- component: {fileID: 1775443227} |
||||
- component: {fileID: 1775443228} |
||||
m_Layer: 0 |
||||
m_Name: ShuiPao |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!4 &5574433776280100200 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 703996644367501529} |
||||
m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} |
||||
m_LocalPosition: {x: -62.16258, y: 0.81, z: -120.32} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: |
||||
- {fileID: 844878760949569793} |
||||
- {fileID: 4938766529170714014} |
||||
m_Father: {fileID: 0} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} |
||||
--- !u!65 &193923743017039186 |
||||
BoxCollider: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 703996644367501529} |
||||
m_Material: {fileID: 0} |
||||
m_IsTrigger: 0 |
||||
m_Enabled: 1 |
||||
serializedVersion: 2 |
||||
m_Size: {x: 0.64, y: 0.67, z: 1.62} |
||||
m_Center: {x: 0, y: 0.03, z: 0} |
||||
--- !u!114 &1775443225 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 703996644367501529} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 34169ca3dfbf7854ca6484b7f5debeee, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
waterOpen: 0 |
||||
ParticleSize: 1 |
||||
Flow: 0 |
||||
RemainTime: 0 |
||||
RemianWater: 0 |
||||
AllUseWater: 0 |
||||
SpType: 0 |
||||
spraymode: 0 |
||||
--- !u!114 &1775443226 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 703996644367501529} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 19c043b4b714b9f4cbba9383af04145c, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
gameObjID: 0 |
||||
gameObjType: 122 |
||||
UserID: 0 |
||||
buildNum: |
||||
floorNum: 0 |
||||
interlayerNum: 0 |
||||
Layer: 0 |
||||
ShoworHidden: 0 |
||||
FullName: |
||||
--- !u!114 &1775443227 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 703996644367501529} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 55475a7d97e0f00459a5739bca447956, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
--- !u!114 &1775443228 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 703996644367501529} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: bbfe5f2362972d94c865d85730e0374e, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
type: 3 |
||||
IsWaterConnonOpen: 0 |
||||
--- !u!1 &5158704125917566357 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 844878760949569793} |
||||
- component: {fileID: 4931617447498137302} |
||||
- component: {fileID: 5307039457061625760} |
||||
m_Layer: 0 |
||||
m_Name: Ti |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!4 &844878760949569793 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 5158704125917566357} |
||||
m_LocalRotation: {x: 2.5554459e-15, y: 0.7071068, z: 0.7071068, w: -2.4688503e-15} |
||||
m_LocalPosition: {x: 0.0065429686, y: 0.1470703, z: -0.24823791} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: |
||||
- {fileID: 5943203390292084686} |
||||
- {fileID: 7922751163727026800} |
||||
m_Father: {fileID: 5574433776280100200} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!33 &4931617447498137302 |
||||
MeshFilter: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 5158704125917566357} |
||||
m_Mesh: {fileID: 4300000, guid: 8768c469f9d9b2446aa351822a5ab95f, type: 3} |
||||
--- !u!23 &5307039457061625760 |
||||
MeshRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 5158704125917566357} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 1 |
||||
m_ReceiveShadows: 1 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 1 |
||||
m_RendererPriority: 0 |
||||
m_Materials: |
||||
- {fileID: 2100000, guid: fad5903b83a185541a70fbfd06c1c4bb, type: 2} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 0 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 3 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
||||
--- !u!1 &6735610456366419951 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 7922751163727026800} |
||||
- component: {fileID: 7330302561529156600} |
||||
- component: {fileID: 7147766395525951782} |
||||
- component: {fileID: 4069758070379720835} |
||||
m_Layer: 0 |
||||
m_Name: Toushang 23 |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!4 &7922751163727026800 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 6735610456366419951} |
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: -0.00037597655, y: 0.81572384, z: -0.06338867} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: |
||||
- {fileID: 808439329083036769} |
||||
m_Father: {fileID: 844878760949569793} |
||||
m_RootOrder: 1 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!33 &7330302561529156600 |
||||
MeshFilter: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 6735610456366419951} |
||||
m_Mesh: {fileID: 4300002, guid: 8768c469f9d9b2446aa351822a5ab95f, type: 3} |
||||
--- !u!23 &7147766395525951782 |
||||
MeshRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 6735610456366419951} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 1 |
||||
m_ReceiveShadows: 1 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 1 |
||||
m_RendererPriority: 0 |
||||
m_Materials: |
||||
- {fileID: 2100000, guid: fad5903b83a185541a70fbfd06c1c4bb, type: 2} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 0 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 3 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
||||
--- !u!114 &4069758070379720835 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 6735610456366419951} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: e91de2edd3d973c44b481ebe8ce4c554, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
--- !u!1 &7415060190815577731 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 808439329083036769} |
||||
- component: {fileID: 207555561192688527} |
||||
- component: {fileID: 2505263258015150989} |
||||
- component: {fileID: 7757812560848578530} |
||||
m_Layer: 0 |
||||
m_Name: Tou 6 |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!4 &808439329083036769 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7415060190815577731} |
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} |
||||
m_LocalPosition: {x: 0.0061572264, y: 0.1567572, z: -0.083496094} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 7922751163727026800} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!33 &207555561192688527 |
||||
MeshFilter: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7415060190815577731} |
||||
m_Mesh: {fileID: 4300004, guid: 8768c469f9d9b2446aa351822a5ab95f, type: 3} |
||||
--- !u!23 &2505263258015150989 |
||||
MeshRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7415060190815577731} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 1 |
||||
m_ReceiveShadows: 1 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 1 |
||||
m_RendererPriority: 0 |
||||
m_Materials: |
||||
- {fileID: 2100000, guid: fad5903b83a185541a70fbfd06c1c4bb, type: 2} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 0 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 3 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
||||
--- !u!114 &7757812560848578530 |
||||
MonoBehaviour: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7415060190815577731} |
||||
m_Enabled: 1 |
||||
m_EditorHideFlags: 0 |
||||
m_Script: {fileID: 11500000, guid: 536095cbe23d36245a906edb8996a330, type: 3} |
||||
m_Name: |
||||
m_EditorClassIdentifier: |
||||
--- !u!1 &7971744097969786798 |
||||
GameObject: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
serializedVersion: 6 |
||||
m_Component: |
||||
- component: {fileID: 5943203390292084686} |
||||
- component: {fileID: 6817485531711149498} |
||||
- component: {fileID: 8252302796667082626} |
||||
m_Layer: 0 |
||||
m_Name: Famen 3 |
||||
m_TagString: Untagged |
||||
m_Icon: {fileID: 0} |
||||
m_NavMeshLayer: 0 |
||||
m_StaticEditorFlags: 0 |
||||
m_IsActive: 1 |
||||
--- !u!4 &5943203390292084686 |
||||
Transform: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7971744097969786798} |
||||
m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} |
||||
m_LocalPosition: {x: 0.00017578124, y: -0.09365555, z: 0.26292968} |
||||
m_LocalScale: {x: 1, y: 1, z: 1} |
||||
m_Children: [] |
||||
m_Father: {fileID: 844878760949569793} |
||||
m_RootOrder: 0 |
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} |
||||
--- !u!33 &6817485531711149498 |
||||
MeshFilter: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7971744097969786798} |
||||
m_Mesh: {fileID: 4300006, guid: 8768c469f9d9b2446aa351822a5ab95f, type: 3} |
||||
--- !u!23 &8252302796667082626 |
||||
MeshRenderer: |
||||
m_ObjectHideFlags: 0 |
||||
m_CorrespondingSourceObject: {fileID: 0} |
||||
m_PrefabInstance: {fileID: 0} |
||||
m_PrefabAsset: {fileID: 0} |
||||
m_GameObject: {fileID: 7971744097969786798} |
||||
m_Enabled: 1 |
||||
m_CastShadows: 1 |
||||
m_ReceiveShadows: 1 |
||||
m_DynamicOccludee: 1 |
||||
m_MotionVectors: 1 |
||||
m_LightProbeUsage: 1 |
||||
m_ReflectionProbeUsage: 1 |
||||
m_RenderingLayerMask: 1 |
||||
m_RendererPriority: 0 |
||||
m_Materials: |
||||
- {fileID: 2100000, guid: fad5903b83a185541a70fbfd06c1c4bb, type: 2} |
||||
m_StaticBatchInfo: |
||||
firstSubMesh: 0 |
||||
subMeshCount: 0 |
||||
m_StaticBatchRoot: {fileID: 0} |
||||
m_ProbeAnchor: {fileID: 0} |
||||
m_LightProbeVolumeOverride: {fileID: 0} |
||||
m_ScaleInLightmap: 1 |
||||
m_PreserveUVs: 0 |
||||
m_IgnoreNormalsForChartDetection: 0 |
||||
m_ImportantGI: 0 |
||||
m_StitchLightmapSeams: 0 |
||||
m_SelectedEditorRenderState: 3 |
||||
m_MinimumChartSize: 4 |
||||
m_AutoUVMaxDistance: 0.5 |
||||
m_AutoUVMaxAngle: 89 |
||||
m_LightmapParameters: {fileID: 0} |
||||
m_SortingLayerID: 0 |
||||
m_SortingLayer: 0 |
||||
m_SortingOrder: 0 |
@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 37d1e78def18b51428cf563c4a2efcb6 |
||||
PrefabImporter: |
||||
externalObjects: {} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
File diff suppressed because one or more lines are too long
Binary file not shown.
@ -1,221 +1,232 @@
|
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using AX.NetworkSystem; |
||||
using AX.Network.Protocols; |
||||
using AX.Serialization; |
||||
public struct ShuiPaoControl |
||||
{ |
||||
public long gameObjectID; |
||||
public bool isControlling; |
||||
} |
||||
public struct ShuiPaoSyncData |
||||
{ |
||||
public long gameObjectID; |
||||
public bool waterOpen; |
||||
public float ParticleSize; |
||||
public Quaternion dizuoRotation; |
||||
public Quaternion shuiQiangRotation; |
||||
} |
||||
public class GuDingShuiPaoControl : MonoBehaviour |
||||
{ |
||||
|
||||
// Use this for initialization |
||||
private ObjSelectCtrl objSelectCtrl; |
||||
private bool isControlling; |
||||
private long gameObjectID; |
||||
private GameObject dizuo; |
||||
private GameObject shuiQiang; |
||||
private GameObject water; |
||||
public bool waterOpen; |
||||
public float ParticleSize=1; |
||||
private GameObject waterStraightPrefab; |
||||
/// <summary> |
||||
/// 流量 |
||||
/// </summary> |
||||
public float Flow; |
||||
/// <summary> |
||||
/// 剩余时间 |
||||
/// </summary> |
||||
public int RemainTime; |
||||
/// <summary> |
||||
/// 剩余水量 |
||||
/// </summary> |
||||
public int RemianWater; |
||||
public float AllUseWater; |
||||
private float timer = 1f; |
||||
|
||||
public SprayMode spraymode = SprayMode.PS30; |
||||
void Start() |
||||
{ |
||||
Init(); |
||||
dizuo = transform.GetComponentInChildren<GuDingShuiPaoDiZuo>().gameObject; |
||||
shuiQiang = transform.GetComponentInChildren<GuDingShuiPaoShuiQiang>().gameObject; |
||||
gameObjectID = GetComponent<BaseGameObjInfo>().gameObjID; |
||||
waterStraightPrefab = Resources.Load<GameObject>("Particle/WaterStraight"); |
||||
NetworkMessageDispatcher.AddListener("GUDINGSHUIPAO_CONTROL_SYNC", SetController); |
||||
NetworkMessageDispatcher.AddListener("GUDINGSHUIPAO_DATA_SYNC", SetShuiPao); |
||||
SprayParameter spray = SprayParameter.GetInfo(SprayMode.PS30); |
||||
float value= (ParticleSize - spray.minsize) / (spray.maxsize - spray.minsize); |
||||
Flow = (spray.maxflow - spray.minflow) * value + spray.minflow; |
||||
} |
||||
void OnDestroy() |
||||
{ |
||||
NetworkMessageDispatcher.RemoveListener("GUDINGSHUIPAO_CONTROL_SYNC", SetController); |
||||
NetworkMessageDispatcher.RemoveListener("GUDINGSHUIPAO_DATA_SYNC", SetShuiPao); |
||||
} |
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
if (CurrentUserInfo.role == Role.中队指挥 || CurrentUserInfo.role == Role.战斗班长) |
||||
{ |
||||
if (objSelectCtrl.selected && !isControlling) |
||||
{ |
||||
isControlling = true; |
||||
|
||||
NetworkManager.Default.SendAsync("GUDINGSHUIPAO_CONTROL_SYNC", new ShuiPaoControl { gameObjectID = gameObjectID, isControlling = isControlling }); |
||||
} |
||||
if (!objSelectCtrl.selected && isControlling) |
||||
{ |
||||
isControlling = false; |
||||
NetworkManager.Default.SendAsync("GUDINGSHUIPAO_CONTROL_SYNC", new ShuiPaoControl { gameObjectID = gameObjectID, isControlling = isControlling }); |
||||
} |
||||
} |
||||
if (waterOpen) |
||||
{ |
||||
timer -= Time.deltaTime; |
||||
if (timer <= 0) |
||||
{ |
||||
AllUseWater += Flow; |
||||
timer = 1f; |
||||
} |
||||
} |
||||
} |
||||
private void Init() |
||||
{ |
||||
if (CurrentUserInfo.role == Role.中队指挥 || CurrentUserInfo.role == Role.战斗班长) |
||||
{ |
||||
GetComponent<BaseGameObjInfo>().UserID = CurrentUserInfo.mySelf.Id; |
||||
objSelectCtrl = gameObject.AddComponent<ObjSelectCtrl>(); |
||||
SelectedObjs.gameObjs.Add(gameObject); |
||||
} |
||||
} |
||||
void SetController(BinaryMessage message) |
||||
{ |
||||
if (CurrentUserInfo.role == Role.中队指挥 || CurrentUserInfo.role == Role.战斗班长) |
||||
{ |
||||
var shuiPaoControl = message.Body.Deserialize<ShuiPaoControl>(); |
||||
if (shuiPaoControl.gameObjectID == gameObjectID) |
||||
{ |
||||
if (shuiPaoControl.isControlling) |
||||
{ |
||||
objSelectCtrl.enabled = false; |
||||
} |
||||
else |
||||
{ |
||||
objSelectCtrl.enabled = true; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
public void SetWater(bool flag) |
||||
{ |
||||
if (water == null) |
||||
{ |
||||
water = Instantiate(waterStraightPrefab, shuiQiang.transform); |
||||
water.transform.Rotate(0, 180, 0); |
||||
ParticleSize = GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue(); |
||||
} |
||||
water.SetActive(flag); |
||||
waterOpen = flag; |
||||
DataSync(); |
||||
} |
||||
public void ChangeSize(float value) |
||||
{ |
||||
ParticleControlOfType currentparticle = GetComponentInChildren<ParticleControlOfType>(true); |
||||
if (currentparticle != null) |
||||
{ |
||||
currentparticle.SetScaleValue(value); |
||||
ParticleSize = value; |
||||
} |
||||
DataSync(); |
||||
} |
||||
public void Up() |
||||
{ |
||||
float x = shuiQiang.transform.localEulerAngles.x; |
||||
x = CheckValue(x); |
||||
if (x < 70) |
||||
{ |
||||
shuiQiang.transform.Rotate(10, 0, 0, Space.Self); |
||||
} |
||||
DataSync(); |
||||
} |
||||
public void Down() |
||||
{ |
||||
float x = shuiQiang.transform.localEulerAngles.x; |
||||
x = CheckValue(x); |
||||
Debug.Log(x); |
||||
if (x > -15) |
||||
{ |
||||
shuiQiang.transform.Rotate(-10, 0, 0, Space.Self); |
||||
} |
||||
DataSync(); |
||||
} |
||||
public void Left() |
||||
{ |
||||
dizuo.transform.Rotate(0, -10, 0, Space.Self); |
||||
DataSync(); |
||||
} |
||||
public void Right() |
||||
{ |
||||
dizuo.transform.Rotate(0, 10, 0, Space.Self); |
||||
DataSync(); |
||||
} |
||||
protected float CheckValue(float angles) |
||||
{ |
||||
if (angles >= 180 && angles <= 360) |
||||
{ |
||||
angles = angles - 360; |
||||
} |
||||
return angles; |
||||
//举例:假如获取到的localEulerAngles.x = 300,则在显示面板其显示的值为-60=300-360,用此显式值计算 |
||||
} |
||||
private void DataSync() |
||||
{ |
||||
var shuiPaoSyncData = new ShuiPaoSyncData(); |
||||
shuiPaoSyncData.gameObjectID = gameObjectID; |
||||
shuiPaoSyncData.waterOpen = waterOpen; |
||||
shuiPaoSyncData.ParticleSize = ParticleSize; |
||||
shuiPaoSyncData.dizuoRotation = dizuo.transform.localRotation; |
||||
shuiPaoSyncData.shuiQiangRotation = shuiQiang.transform.localRotation; |
||||
NetworkManager.Default.SendAsync("GUDINGSHUIPAO_DATA_SYNC", shuiPaoSyncData); |
||||
} |
||||
void SetShuiPao(BinaryMessage message) |
||||
{ |
||||
var shuiPaoControl = message.Body.Deserialize<ShuiPaoSyncData>(); |
||||
if (shuiPaoControl.gameObjectID== gameObjectID) |
||||
{ |
||||
//开关 |
||||
var flag = shuiPaoControl.waterOpen; |
||||
if (water == null) |
||||
{ |
||||
water = Instantiate(waterStraightPrefab, shuiQiang.transform); |
||||
water.transform.Rotate(0, 180, 0); |
||||
ParticleSize = GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue(); |
||||
} |
||||
water.SetActive(flag); |
||||
waterOpen = flag; |
||||
//大小 |
||||
var value = shuiPaoControl.ParticleSize; |
||||
ParticleControlOfType currentparticle = GetComponentInChildren<ParticleControlOfType>(true); |
||||
if (currentparticle != null) |
||||
{ |
||||
currentparticle.SetScaleValue(value); |
||||
ParticleSize = value; |
||||
} |
||||
//方向 |
||||
shuiQiang.transform.localRotation = shuiPaoControl.shuiQiangRotation; |
||||
dizuo.transform.localRotation = shuiPaoControl.dizuoRotation; |
||||
} |
||||
} |
||||
} |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using AX.NetworkSystem; |
||||
using AX.Network.Protocols; |
||||
using AX.Serialization; |
||||
public struct ShuiPaoControl |
||||
{ |
||||
public long gameObjectID; |
||||
public bool isControlling; |
||||
} |
||||
public struct ShuiPaoSyncData |
||||
{ |
||||
public long gameObjectID; |
||||
public bool waterOpen; |
||||
public float ParticleSize; |
||||
public Quaternion dizuoRotation; |
||||
public Quaternion shuiQiangRotation; |
||||
} |
||||
|
||||
public class GuDingShuiPaoControl : MonoBehaviour |
||||
{ |
||||
|
||||
// Use this for initialization |
||||
private ObjSelectCtrl objSelectCtrl; |
||||
private bool isControlling; |
||||
private long gameObjectID; |
||||
private GameObject dizuo; |
||||
private GameObject shuiQiang; |
||||
private GameObject water; |
||||
public bool waterOpen; |
||||
public float ParticleSize=1; |
||||
private GameObject waterStraightPrefab; |
||||
/// <summary> |
||||
/// 流量 |
||||
/// </summary> |
||||
public float Flow; |
||||
/// <summary> |
||||
/// 剩余时间 |
||||
/// </summary> |
||||
public int RemainTime; |
||||
/// <summary> |
||||
/// 剩余水量 |
||||
/// </summary> |
||||
public int RemianWater; |
||||
public float AllUseWater; |
||||
private float timer = 1f; |
||||
/// <summary> |
||||
/// 出水类型 |
||||
/// </summary> |
||||
public SprayParticleType SpType; |
||||
public SprayMode spraymode = SprayMode.PS30; |
||||
void Start() |
||||
{ |
||||
Init(); |
||||
dizuo = transform.GetComponentInChildren<GuDingShuiPaoDiZuo>().gameObject; |
||||
shuiQiang = transform.GetComponentInChildren<GuDingShuiPaoShuiQiang>().gameObject; |
||||
gameObjectID = GetComponent<BaseGameObjInfo>().gameObjID; |
||||
if(SpType==SprayParticleType.WaterStraight) |
||||
{ |
||||
waterStraightPrefab = Resources.Load<GameObject>("Particle/WaterStraight"); |
||||
} |
||||
if (SpType == SprayParticleType.Froth) |
||||
{ |
||||
waterStraightPrefab = Resources.Load<GameObject>("Particle/Froth"); |
||||
} |
||||
NetworkMessageDispatcher.AddListener("GUDINGSHUIPAO_CONTROL_SYNC", SetController); |
||||
NetworkMessageDispatcher.AddListener("GUDINGSHUIPAO_DATA_SYNC", SetShuiPao); |
||||
SprayParameter spray = SprayParameter.GetInfo(SprayMode.PS30); |
||||
float value= (ParticleSize - spray.minsize) / (spray.maxsize - spray.minsize); |
||||
Flow = (spray.maxflow - spray.minflow) * value + spray.minflow; |
||||
} |
||||
void OnDestroy() |
||||
{ |
||||
NetworkMessageDispatcher.RemoveListener("GUDINGSHUIPAO_CONTROL_SYNC", SetController); |
||||
NetworkMessageDispatcher.RemoveListener("GUDINGSHUIPAO_DATA_SYNC", SetShuiPao); |
||||
} |
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
if (CurrentUserInfo.role == Role.中队指挥 || CurrentUserInfo.role == Role.战斗班长) |
||||
{ |
||||
if (objSelectCtrl.selected && !isControlling) |
||||
{ |
||||
isControlling = true; |
||||
|
||||
NetworkManager.Default.SendAsync("GUDINGSHUIPAO_CONTROL_SYNC", new ShuiPaoControl { gameObjectID = gameObjectID, isControlling = isControlling }); |
||||
} |
||||
if (!objSelectCtrl.selected && isControlling) |
||||
{ |
||||
isControlling = false; |
||||
NetworkManager.Default.SendAsync("GUDINGSHUIPAO_CONTROL_SYNC", new ShuiPaoControl { gameObjectID = gameObjectID, isControlling = isControlling }); |
||||
} |
||||
} |
||||
if (waterOpen) |
||||
{ |
||||
timer -= Time.deltaTime; |
||||
if (timer <= 0) |
||||
{ |
||||
AllUseWater += Flow; |
||||
timer = 1f; |
||||
} |
||||
} |
||||
} |
||||
private void Init() |
||||
{ |
||||
if (CurrentUserInfo.role == Role.中队指挥 || CurrentUserInfo.role == Role.战斗班长) |
||||
{ |
||||
GetComponent<BaseGameObjInfo>().UserID = CurrentUserInfo.mySelf.Id; |
||||
objSelectCtrl = gameObject.AddComponent<ObjSelectCtrl>(); |
||||
SelectedObjs.gameObjs.Add(gameObject); |
||||
} |
||||
} |
||||
void SetController(BinaryMessage message) |
||||
{ |
||||
if (CurrentUserInfo.role == Role.中队指挥 || CurrentUserInfo.role == Role.战斗班长) |
||||
{ |
||||
var shuiPaoControl = message.Body.Deserialize<ShuiPaoControl>(); |
||||
if (shuiPaoControl.gameObjectID == gameObjectID) |
||||
{ |
||||
if (shuiPaoControl.isControlling) |
||||
{ |
||||
objSelectCtrl.enabled = false; |
||||
} |
||||
else |
||||
{ |
||||
objSelectCtrl.enabled = true; |
||||
} |
||||
} |
||||
} |
||||
} |
||||
public void SetWater(bool flag) |
||||
{ |
||||
if (water == null) |
||||
{ |
||||
water = Instantiate(waterStraightPrefab, shuiQiang.transform); |
||||
water.transform.Rotate(0, 180, 0); |
||||
ParticleSize = GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue(); |
||||
} |
||||
water.SetActive(flag); |
||||
waterOpen = flag; |
||||
DataSync(); |
||||
} |
||||
public void ChangeSize(float value) |
||||
{ |
||||
ParticleControlOfType currentparticle = GetComponentInChildren<ParticleControlOfType>(true); |
||||
if (currentparticle != null) |
||||
{ |
||||
currentparticle.SetScaleValue(value); |
||||
ParticleSize = value; |
||||
} |
||||
DataSync(); |
||||
} |
||||
public void Up() |
||||
{ |
||||
float x = shuiQiang.transform.localEulerAngles.x; |
||||
x = CheckValue(x); |
||||
if (x < 70) |
||||
{ |
||||
shuiQiang.transform.Rotate(10, 0, 0, Space.Self); |
||||
} |
||||
DataSync(); |
||||
} |
||||
public void Down() |
||||
{ |
||||
float x = shuiQiang.transform.localEulerAngles.x; |
||||
x = CheckValue(x); |
||||
Debug.Log(x); |
||||
if (x > -15) |
||||
{ |
||||
shuiQiang.transform.Rotate(-10, 0, 0, Space.Self); |
||||
} |
||||
DataSync(); |
||||
} |
||||
public void Left() |
||||
{ |
||||
dizuo.transform.Rotate(0, -10, 0, Space.Self); |
||||
DataSync(); |
||||
} |
||||
public void Right() |
||||
{ |
||||
dizuo.transform.Rotate(0, 10, 0, Space.Self); |
||||
DataSync(); |
||||
} |
||||
protected float CheckValue(float angles) |
||||
{ |
||||
if (angles >= 180 && angles <= 360) |
||||
{ |
||||
angles = angles - 360; |
||||
} |
||||
return angles; |
||||
//举例:假如获取到的localEulerAngles.x = 300,则在显示面板其显示的值为-60=300-360,用此显式值计算 |
||||
} |
||||
private void DataSync() |
||||
{ |
||||
var shuiPaoSyncData = new ShuiPaoSyncData(); |
||||
shuiPaoSyncData.gameObjectID = gameObjectID; |
||||
shuiPaoSyncData.waterOpen = waterOpen; |
||||
shuiPaoSyncData.ParticleSize = ParticleSize; |
||||
shuiPaoSyncData.dizuoRotation = dizuo.transform.localRotation; |
||||
shuiPaoSyncData.shuiQiangRotation = shuiQiang.transform.localRotation; |
||||
NetworkManager.Default.SendAsync("GUDINGSHUIPAO_DATA_SYNC", shuiPaoSyncData); |
||||
} |
||||
void SetShuiPao(BinaryMessage message) |
||||
{ |
||||
var shuiPaoControl = message.Body.Deserialize<ShuiPaoSyncData>(); |
||||
if (shuiPaoControl.gameObjectID== gameObjectID) |
||||
{ |
||||
//开关 |
||||
var flag = shuiPaoControl.waterOpen; |
||||
if (water == null) |
||||
{ |
||||
water = Instantiate(waterStraightPrefab, shuiQiang.transform); |
||||
water.transform.Rotate(0, 180, 0); |
||||
ParticleSize = GetComponentInChildren<ParticleControlOfType>(true).GetScaleValue(); |
||||
} |
||||
water.SetActive(flag); |
||||
waterOpen = flag; |
||||
//大小 |
||||
var value = shuiPaoControl.ParticleSize; |
||||
ParticleControlOfType currentparticle = GetComponentInChildren<ParticleControlOfType>(true); |
||||
if (currentparticle != null) |
||||
{ |
||||
currentparticle.SetScaleValue(value); |
||||
ParticleSize = value; |
||||
} |
||||
//方向 |
||||
shuiQiang.transform.localRotation = shuiPaoControl.shuiQiangRotation; |
||||
dizuo.transform.localRotation = shuiPaoControl.dizuoRotation; |
||||
} |
||||
} |
||||
} |
||||
|
@ -0,0 +1,32 @@
|
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
|
||||
public class ModeImageLoad : MonoBehaviour |
||||
{ |
||||
/// <summary> |
||||
/// 是否是演习图片 |
||||
/// </summary> |
||||
public bool IsDrillPanel; |
||||
// Start is called before the first frame update |
||||
void Start() |
||||
{ |
||||
if (IsDrillPanel) |
||||
{ |
||||
Texture2D tex = Resources.Load<Texture2D>("Common/DrillImage"); |
||||
GetComponent<Image>().sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.one * 0.5f); |
||||
} |
||||
else |
||||
{ |
||||
Texture2D tex = Resources.Load<Texture2D>("Common/ExerciseImage"); |
||||
GetComponent<Image>().sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.one * 0.5f); |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
|
||||
} |
||||
} |
@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2 |
||||
guid: 351eaed31d066ec48b3301f7af88d088 |
||||
MonoImporter: |
||||
externalObjects: {} |
||||
serializedVersion: 2 |
||||
defaultReferences: [] |
||||
executionOrder: 0 |
||||
icon: {instanceID: 0} |
||||
userData: |
||||
assetBundleName: |
||||
assetBundleVariant: |
@ -1,33 +1,34 @@
|
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
|
||||
public class RoomInfoPanel : MonoBehaviour |
||||
{ |
||||
|
||||
public Image SelectSceneImage; |
||||
public Text SceneName; |
||||
public Text IntroduceText; |
||||
public Text Creater; |
||||
public Text ScenceType; |
||||
public Text RoomNum; |
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
//:ToDo |
||||
//房间缩略图 |
||||
//SelectSceneImage.sprite= |
||||
SetRoomInfo(); |
||||
} |
||||
|
||||
public void SetRoomInfo() |
||||
{ |
||||
SceneName.text = CurrentUserInfo.room.Map.name; |
||||
IntroduceText.text = CurrentUserInfo.room.Map.introduction; |
||||
Creater.text = CurrentUserInfo.room.Owner.UserInfo.Username; |
||||
ScenceType.text = CurrentUserInfo.room.Map.sceneType.ToString(); |
||||
RoomNum.text = CurrentUserInfo.room.UserList.Count.ToString() + "/" + CurrentUserInfo.room.MaxPersons; |
||||
} |
||||
|
||||
} |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
|
||||
public class RoomInfoPanel : MonoBehaviour |
||||
{ |
||||
|
||||
public Image SelectSceneImage; |
||||
public Text SceneName; |
||||
public Text IntroduceText; |
||||
public Text Creater; |
||||
public Text ScenceType; |
||||
public Text RoomNum; |
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
//:ToDo |
||||
//房间缩略图 |
||||
Texture2D tex= Resources.Load<Texture2D>("Common/DongYouLiQing"); |
||||
SelectSceneImage.sprite = Sprite.Create(tex, new Rect(0, 0, tex.width, tex.height), Vector2.one * 0.5f); |
||||
SetRoomInfo(); |
||||
} |
||||
|
||||
public void SetRoomInfo() |
||||
{ |
||||
SceneName.text = CurrentUserInfo.room.Map.name; |
||||
IntroduceText.text = CurrentUserInfo.room.Map.introduction; |
||||
Creater.text = CurrentUserInfo.room.Owner.UserInfo.Username; |
||||
ScenceType.text = CurrentUserInfo.room.Map.sceneType.ToString(); |
||||
RoomNum.text = CurrentUserInfo.room.UserList.Count.ToString() + "/" + CurrentUserInfo.room.MaxPersons; |
||||
} |
||||
|
||||
} |
||||
|
@ -1,108 +1,117 @@
|
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
using System.Linq; |
||||
public class OilTanksManager : MonoBehaviour |
||||
{ |
||||
//public Transform AllGuanQu; |
||||
public List<Transform> AllGuanQu = new List<Transform>(); |
||||
public GameObject OilTankPrefab; |
||||
public Transform OilTankParent; |
||||
private ToggleGroup FatherGroup; |
||||
private List<OilTankMessage> AllList = new List<OilTankMessage>(); |
||||
void Start() |
||||
{ |
||||
//AllGuanQu = GameObject.Find("GuanQu_normal").transform; |
||||
//for (int i = 0; i < AllGuanQu.childCount; i++) |
||||
//{ |
||||
// if (AllGuanQu.GetChild(i).GetComponent<OilTankMessage>()) |
||||
// { |
||||
// AllList.Add(AllGuanQu.GetChild(i).GetComponent<OilTankMessage>()); |
||||
// } |
||||
//} |
||||
|
||||
//FatherGroup = gameObject.AddComponent<ToggleGroup>(); |
||||
//FatherGroup.allowSwitchOff = true; |
||||
|
||||
Init(); |
||||
} |
||||
|
||||
private void Init() |
||||
{ |
||||
//AllGuanQu.Add(GameObject.Find("3#GuanQu").transform); |
||||
//AllGuanQu.Add(GameObject.Find("4#GuanQu").transform); |
||||
|
||||
//foreach (Transform item in AllGuanQu) |
||||
//{ |
||||
// if (item != null) |
||||
// { |
||||
// var tanks = item.GetComponentsInChildren<OilTankMessage>(); |
||||
// foreach (var tank in tanks) |
||||
// { |
||||
// AllList.Add(tank); |
||||
// } |
||||
// } |
||||
//} |
||||
AllList = GameObject.Find("SceneAll/GuanQu").GetComponentsInChildren<OilTankMessage>().ToList(); |
||||
FatherGroup = OilTankParent.gameObject.AddComponent<ToggleGroup>(); |
||||
FatherGroup.allowSwitchOff = true; |
||||
|
||||
//从Start移过来,避免编辑灾情库时加载灾情库也在Start里,加载普通火蔓延范围管线与这里生成的对象ID重复 |
||||
DataBind(); |
||||
} |
||||
|
||||
|
||||
private void DataBind() |
||||
{ |
||||
//{ |
||||
var DataList = from OilFlowManage in AllList where OilFlowManage.MyBaseMessage.TankFieldName.Contains("GuanQu") select OilFlowManage; |
||||
|
||||
//Debug.Log(DataList.Count()); |
||||
BindMethord(DataList, "罐区"); |
||||
//} |
||||
//{ |
||||
// var DataList = from OilFlowManage in AllList where OilFlowManage.MyBaseMessage.TankFieldName.Contains("QiuGuan") select OilFlowManage; |
||||
// //Debug.Log(DataList.Count()); |
||||
// BindMethord(DataList, "球罐区"); |
||||
//} |
||||
} |
||||
|
||||
private void BindMethord(IEnumerable<OilTankMessage> DataList, string ShowText) |
||||
{ |
||||
var GroupResult = from OilTankMessage in DataList group OilTankMessage by OilTankMessage.MyBaseMessage.TankFieldName; |
||||
foreach (var item in GroupResult) |
||||
{ |
||||
if (item.ToList().Count > 0) |
||||
{ |
||||
GameObject c = Instantiate(OilTankPrefab, OilTankParent); |
||||
c.GetComponent<OilTankController>().ChildList = new List<GameObject>(); |
||||
c.GetComponent<OilTankController>().HasChild.gameObject.SetActive(true); |
||||
c.GetComponent<OilTankController>().MyManager = this; |
||||
c.GetComponent<Toggle>().group = FatherGroup; |
||||
c.name = item.ToList()[0].MyBaseMessage.TankFieldName.Split('#')[0];//ShowText + item.Key; |
||||
c.GetComponent<OilTankController>().DataBind(); |
||||
ToggleGroup group = c.gameObject.AddComponent<ToggleGroup>(); |
||||
group.allowSwitchOff = true; |
||||
foreach (var o in item.ToList()) |
||||
{ |
||||
GameObject cc = Instantiate(OilTankPrefab, OilTankParent); |
||||
cc.GetComponent<OilTankController>().MyManager = this; |
||||
cc.GetComponent<OilTankController>().HasChild.gameObject.SetActive(false); |
||||
cc.GetComponent<OilTankController>().MyMsg = o; |
||||
cc.name = o.MyBaseMessage.GuanQuName;//TankFieldNum + "_" + o.MyBaseMessage.TankFieldInnerNum; |
||||
cc.GetComponent<Toggle>().group = group; |
||||
cc.GetComponent<OilTankController>().DataBind(); |
||||
cc.gameObject.SetActive(false); |
||||
c.GetComponent<OilTankController>().ChildList.Add(cc); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
|
||||
} |
||||
} |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
using System.Linq; |
||||
public class OilTanksManager : MonoBehaviour |
||||
{ |
||||
//public Transform AllGuanQu; |
||||
public List<Transform> AllGuanQu = new List<Transform>(); |
||||
public GameObject OilTankPrefab; |
||||
public Transform OilTankParent; |
||||
private ToggleGroup FatherGroup; |
||||
private List<OilTankMessage> AllList = new List<OilTankMessage>(); |
||||
private void Awake() |
||||
{ |
||||
if (GameSettings.othersSettings.SceneType != SceneType.化工建筑) |
||||
{ |
||||
gameObject.SetActive(false); |
||||
return; |
||||
} |
||||
} |
||||
void Start() |
||||
{ |
||||
|
||||
//AllGuanQu = GameObject.Find("GuanQu_normal").transform; |
||||
//for (int i = 0; i < AllGuanQu.childCount; i++) |
||||
//{ |
||||
// if (AllGuanQu.GetChild(i).GetComponent<OilTankMessage>()) |
||||
// { |
||||
// AllList.Add(AllGuanQu.GetChild(i).GetComponent<OilTankMessage>()); |
||||
// } |
||||
//} |
||||
|
||||
//FatherGroup = gameObject.AddComponent<ToggleGroup>(); |
||||
//FatherGroup.allowSwitchOff = true; |
||||
|
||||
Init(); |
||||
} |
||||
|
||||
private void Init() |
||||
{ |
||||
//AllGuanQu.Add(GameObject.Find("3#GuanQu").transform); |
||||
//AllGuanQu.Add(GameObject.Find("4#GuanQu").transform); |
||||
|
||||
//foreach (Transform item in AllGuanQu) |
||||
//{ |
||||
// if (item != null) |
||||
// { |
||||
// var tanks = item.GetComponentsInChildren<OilTankMessage>(); |
||||
// foreach (var tank in tanks) |
||||
// { |
||||
// AllList.Add(tank); |
||||
// } |
||||
// } |
||||
//} |
||||
AllList = GameObject.Find("SceneAll/GuanQu").GetComponentsInChildren<OilTankMessage>().ToList(); |
||||
FatherGroup = OilTankParent.gameObject.AddComponent<ToggleGroup>(); |
||||
FatherGroup.allowSwitchOff = true; |
||||
|
||||
//从Start移过来,避免编辑灾情库时加载灾情库也在Start里,加载普通火蔓延范围管线与这里生成的对象ID重复 |
||||
DataBind(); |
||||
} |
||||
|
||||
|
||||
private void DataBind() |
||||
{ |
||||
//{ |
||||
var DataList = from OilFlowManage in AllList where OilFlowManage.MyBaseMessage.TankFieldName.Contains("GuanQu") select OilFlowManage; |
||||
|
||||
//Debug.Log(DataList.Count()); |
||||
BindMethord(DataList, "罐区"); |
||||
//} |
||||
//{ |
||||
// var DataList = from OilFlowManage in AllList where OilFlowManage.MyBaseMessage.TankFieldName.Contains("QiuGuan") select OilFlowManage; |
||||
// //Debug.Log(DataList.Count()); |
||||
// BindMethord(DataList, "球罐区"); |
||||
//} |
||||
} |
||||
|
||||
private void BindMethord(IEnumerable<OilTankMessage> DataList, string ShowText) |
||||
{ |
||||
var GroupResult = from OilTankMessage in DataList group OilTankMessage by OilTankMessage.MyBaseMessage.TankFieldName; |
||||
foreach (var item in GroupResult) |
||||
{ |
||||
if (item.ToList().Count > 0) |
||||
{ |
||||
GameObject c = Instantiate(OilTankPrefab, OilTankParent); |
||||
c.GetComponent<OilTankController>().ChildList = new List<GameObject>(); |
||||
c.GetComponent<OilTankController>().HasChild.gameObject.SetActive(true); |
||||
c.GetComponent<OilTankController>().MyManager = this; |
||||
c.GetComponent<Toggle>().group = FatherGroup; |
||||
c.name = item.ToList()[0].MyBaseMessage.TankFieldName.Split('#')[0];//ShowText + item.Key; |
||||
c.GetComponent<OilTankController>().DataBind(); |
||||
ToggleGroup group = c.gameObject.AddComponent<ToggleGroup>(); |
||||
group.allowSwitchOff = true; |
||||
foreach (var o in item.ToList()) |
||||
{ |
||||
GameObject cc = Instantiate(OilTankPrefab, OilTankParent); |
||||
cc.GetComponent<OilTankController>().MyManager = this; |
||||
cc.GetComponent<OilTankController>().HasChild.gameObject.SetActive(false); |
||||
cc.GetComponent<OilTankController>().MyMsg = o; |
||||
cc.name = o.MyBaseMessage.GuanQuName;//TankFieldNum + "_" + o.MyBaseMessage.TankFieldInnerNum; |
||||
cc.GetComponent<Toggle>().group = group; |
||||
cc.GetComponent<OilTankController>().DataBind(); |
||||
cc.gameObject.SetActive(false); |
||||
c.GetComponent<OilTankController>().ChildList.Add(cc); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
// Update is called once per frame |
||||
void Update() |
||||
{ |
||||
|
||||
} |
||||
} |
||||
|
@ -1,364 +1,366 @@
|
||||
using AX.MessageSystem; |
||||
using AX.NetworkSystem; |
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
|
||||
public class PoliceCallPanel : MonoBehaviour |
||||
{ |
||||
public Transform PoliceCloseButton; |
||||
|
||||
public Transform CallMan; |
||||
public Transform Phone; |
||||
public Transform FirePlace; |
||||
public Transform FireArea; |
||||
public Transform FireReason; |
||||
public Transform Trapped; |
||||
public Transform FireLeave; |
||||
public Transform Dangerous; |
||||
public Transform PoliceCallButton; |
||||
public Transform PoliceCallCancelButton; |
||||
|
||||
public Transform ArriveTimeTitle; |
||||
|
||||
public string callname; |
||||
public string phone; |
||||
public string firePlace; |
||||
public string fireReason; |
||||
public string fireArea; |
||||
public string fireLevel; |
||||
public string hasDangerous; |
||||
public string hasTrapped; |
||||
|
||||
private string errortext; |
||||
|
||||
private Transform P_FireLiquidLevel; |
||||
|
||||
private Transform dis; |
||||
private void Awake() |
||||
{ |
||||
dis = GameObject.Find("P_AllParent").transform.Find("P_Disasters"); |
||||
MessageDispatcher.AddListener("LOAD_UIDISASTER", LoadUIDisaster); |
||||
this.gameObject.SetActive(false); |
||||
|
||||
P_FireLiquidLevel = GameObject.Find("P_FireLiquidLevel").transform; |
||||
} |
||||
|
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
PoliceCloseButton.GetComponent<ButtonRecordByAC>().OutInterFaceButton = PoliceCloseButtonClick; |
||||
CallMan.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = CallManOnValueChange; |
||||
Phone.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = PhoneOnValueChange; |
||||
FirePlace.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FirePlaceOnValueChange; |
||||
FireArea.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireAreaOnValueChange; |
||||
FireReason.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireReasonOnValueChange; |
||||
FireLeave.GetComponent<DropDownRecordByAC>().OutInterFaceDropDown = FireLeaveOnValueChange; |
||||
Dangerous.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = DangerousOnValueChange; |
||||
PoliceCallButton.GetComponent<ButtonRecordByAC>().OutInterFaceButton = PoliceCallButtonClick; |
||||
PoliceCallCancelButton.GetComponent<ButtonRecordByAC>().OutInterFaceButton = PoliceCallCancelOnClick; |
||||
|
||||
fireReason = "不详"; |
||||
fireArea = "不详"; |
||||
hasDangerous = "不详"; |
||||
fireLevel = "不详"; |
||||
} |
||||
|
||||
public void OnEnable() |
||||
{ |
||||
int trap_wound = dis.Find("P_TrappedPerson").childCount + dis.Find("P_Wounded").childCount; |
||||
Trapped.GetComponent<Text>().text = trap_wound > 0 ? "是" : "否"; |
||||
} |
||||
|
||||
private void OnDestroy() |
||||
{ |
||||
MessageDispatcher.RemoveListener("LOAD_UIDISASTER", LoadUIDisaster); |
||||
} |
||||
|
||||
private void LoadUIDisaster(IMessage obj) |
||||
{ |
||||
if (GameSettings.othersSettings.isSelectedDisaster) |
||||
{ |
||||
DataBind(); |
||||
if (GameSettings.othersSettings.mode != Mode.DisasterManagement) |
||||
{//若是练习或演习模式进入导调组界面,则不可以修改 |
||||
CallMan.GetComponent<InputField>().interactable = false; |
||||
Phone.GetComponent<InputField>().interactable = false; |
||||
FirePlace.GetComponent<InputField>().interactable = false; |
||||
FireArea.GetComponent<InputField>().interactable = false; |
||||
FireReason.GetComponent<InputField>().interactable = false; |
||||
FireLeave.GetComponent<Dropdown>().interactable = false; |
||||
Dangerous.GetComponent<InputField>().interactable = false; |
||||
} |
||||
else |
||||
{ |
||||
if (!GameSettings.disasterSetting.isEdit) |
||||
{//若是灾情库设置模式的查看,则不可以修改 |
||||
CallMan.GetComponent<InputField>().interactable = false; |
||||
Phone.GetComponent<InputField>().interactable = false; |
||||
FirePlace.GetComponent<InputField>().interactable = false; |
||||
FireArea.GetComponent<InputField>().interactable = false; |
||||
FireReason.GetComponent<InputField>().interactable = false; |
||||
FireLeave.GetComponent<Dropdown>().interactable = false; |
||||
Dangerous.GetComponent<InputField>().interactable = false; |
||||
PoliceCallButton.GetComponent<Button>().interactable = false; |
||||
} |
||||
else |
||||
{ |
||||
//若是灾情库设置模式的编辑,则可以修改 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
private void PoliceCloseButtonClick() |
||||
{ |
||||
gameObject.SetActive(false); |
||||
} |
||||
|
||||
private void CallManOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
callname = value; |
||||
} |
||||
} |
||||
|
||||
private void PhoneOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
phone = value; |
||||
} |
||||
} |
||||
private void FirePlaceOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
firePlace = value; |
||||
} |
||||
} |
||||
|
||||
private void FireAreaOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
fireArea = value; |
||||
} |
||||
else |
||||
{ |
||||
fireArea = "不详"; |
||||
} |
||||
} |
||||
|
||||
private void FireReasonOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
fireReason = value; |
||||
} |
||||
else |
||||
{ |
||||
fireReason = "不详"; |
||||
} |
||||
} |
||||
|
||||
private void FireLeaveOnValueChange(int value) |
||||
{ |
||||
fireLevel = FireLeave.GetComponent<Dropdown>().captionText.text; |
||||
} |
||||
|
||||
private void DangerousOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
hasDangerous = value; |
||||
} |
||||
else |
||||
{ |
||||
hasDangerous = "不详"; |
||||
} |
||||
} |
||||
|
||||
private void PoliceCallButtonClick() |
||||
{ |
||||
if (string.IsNullOrEmpty(CallMan.GetComponent<InputField>().text) || CallMan.GetComponent<InputField>().text == "") |
||||
{ |
||||
errortext = "请填写报警人"; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow(errortext, 2f); |
||||
} |
||||
else |
||||
{ |
||||
|
||||
if (string.IsNullOrEmpty(Phone.GetComponent<InputField>().text) || Phone.GetComponent<InputField>().text == "") |
||||
{ |
||||
errortext = "请填写电话号码"; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow(errortext, 2f); |
||||
} |
||||
else |
||||
{ |
||||
|
||||
if (string.IsNullOrEmpty(FirePlace.GetComponent<InputField>().text) || FirePlace.GetComponent<InputField>().text == "") |
||||
{ |
||||
errortext = "请填写着火地点"; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow(errortext, 2f); |
||||
} |
||||
else |
||||
{ |
||||
PoliceCallData policedata = new PoliceCallData(); |
||||
policedata.UserId = CurrentUserInfo.mySelf.Id; |
||||
policedata.Name = callname; |
||||
policedata.Phone = phone; |
||||
policedata.FirePlace = firePlace; |
||||
policedata.FireArea = fireArea; |
||||
policedata.FireReason = fireReason; ; |
||||
// Transform dis = GameObject.Find("P_AllParent").transform.Find("P_Disasters"); |
||||
int trap_wound = dis.Find("P_TrappedPerson").childCount + dis.Find("P_Wounded").childCount; |
||||
policedata.HasTrapped = trap_wound > 0 ? "是" : "否"; |
||||
policedata.FireLevel = fireLevel; |
||||
policedata.HasDangerous = hasDangerous; |
||||
//时间键值对集合 |
||||
if (GameSettings.othersSettings.mode != Mode.DisasterManagement) |
||||
{ |
||||
policedata.RoomID = CurrentUserInfo.room.Id; |
||||
|
||||
policedata.ArriveTimeList = ArriveTimeTitle.GetComponent<ArriveTimeContent>().ArriveTimeList; |
||||
//Debug.Log(policedata.Name+"/"+policedata.Phone+"/"+policedata.FirePlace+"/"+policedata.FireArea+"/" |
||||
// +policedata.FireReason+"/"+policedata.HasTrapped+"/"+policedata.HasDangerous+"/"+policedata.FireLevel); |
||||
|
||||
NetworkManager.Default.SendAsync("POLICE_CALL_SYNC", policedata); |
||||
|
||||
CallMan.GetComponent<InputField>().interactable = false; |
||||
Phone.GetComponent<InputField>().interactable = false; |
||||
FirePlace.GetComponent<InputField>().interactable = false; |
||||
FireArea.GetComponent<InputField>().interactable = false; |
||||
FireReason.GetComponent<InputField>().interactable = false; |
||||
FireLeave.GetComponent<Dropdown>().interactable = false; |
||||
Dangerous.GetComponent<InputField>().interactable = false; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow("已报警", 1f); |
||||
PoliceCallButton.GetComponent<Button>().interactable = false; |
||||
|
||||
GameSettings.othersSettings.isStartDrill = true; |
||||
transform.parent.Find("TopPanel/Tool/Button").GetComponentInChildren<Text>().text = "结束"; |
||||
SetDisableInCustomPractice(); |
||||
//导调组赋值灾情设置信息 |
||||
//if (FindObjectOfType<DrillBeginButton>()&&FindObjectOfType<VictoryConditionPanel>()) |
||||
//{ |
||||
// FindObjectOfType<DrillBeginButton>().Victorysetting = FindObjectOfType<VictoryConditionPanel>().VictoryConditionSetting(); |
||||
//} |
||||
|
||||
if (transform.parent.Find("TopPanel/Tool/Button").GetComponent<DrillBeginButton>() |
||||
&& transform.parent.Find("SettingPanel/VictoryConditionTitle").GetComponent<VictoryConditionPanel>()) |
||||
{ |
||||
transform.parent.Find("TopPanel/Tool/Button").GetComponent<DrillBeginButton>().Victorysetting = |
||||
transform.parent.Find("SettingPanel/VictoryConditionTitle").GetComponent<VictoryConditionPanel>().VictoryConditionSetting(); |
||||
|
||||
} |
||||
// OilSetManager.GetInstance.SetInteractable();//油罐UI设置 |
||||
//给导调组赋值报警信息 |
||||
GameSettings.disasterSetting.policeCallData = policedata; |
||||
MessageDispatcher.SendMessage("police_call"); |
||||
|
||||
//向服务端申请开始计时 |
||||
KeyValuePair<long, bool> pair = new KeyValuePair<long, bool>(CurrentUserInfo.room.Id, true); |
||||
NetworkManager.Default.SendAsync("TIMER_ENABLE_SYNC", pair); |
||||
|
||||
foreach (Transform child in P_FireLiquidLevel) |
||||
{ |
||||
if (child.GetComponent<FireLiquidLevelCtrl>().showTime != "00:00:00") |
||||
{ |
||||
NetworkManager.Default.SendAsync("SET_LIQUIP_HIDE_SYNC", child.GetComponent<BaseGameObjInfo>().gameObjID); |
||||
child.gameObject.SetActive(false); |
||||
} |
||||
} |
||||
} |
||||
|
||||
StartCoroutine(Close()); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
private void PoliceCallCancelOnClick() |
||||
{ |
||||
gameObject.SetActive(false); |
||||
} |
||||
private IEnumerator Close() |
||||
{ |
||||
yield return new WaitForSeconds(1f); |
||||
gameObject.SetActive(false); |
||||
} |
||||
/// <summary> |
||||
/// 灾情库进来报警信息绑定 |
||||
/// </summary> |
||||
private void DataBind() |
||||
{ |
||||
CallMan.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.Name; |
||||
Phone.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.Phone; |
||||
FirePlace.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.FirePlace; |
||||
FireArea.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.FireArea; |
||||
FireReason.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.FireReason; |
||||
Trapped.GetComponent<Text>().text = GameSettings.othersSettings.disaster.PoliceCallData.HasTrapped; |
||||
Dropdown drop = FireLeave.GetComponent<Dropdown>(); |
||||
for (int i = 0; i < drop.options.Count; i++) |
||||
{ |
||||
if (drop.options[i].text == GameSettings.othersSettings.disaster.PoliceCallData.FireLevel) |
||||
{ |
||||
drop.value = i; |
||||
} |
||||
} |
||||
Dangerous.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.HasDangerous; |
||||
callname = GameSettings.othersSettings.disaster.PoliceCallData.Name; |
||||
phone = GameSettings.othersSettings.disaster.PoliceCallData.Phone; |
||||
firePlace = GameSettings.othersSettings.disaster.PoliceCallData.FirePlace; |
||||
fireArea = GameSettings.othersSettings.disaster.PoliceCallData.FireArea; ; |
||||
fireReason = GameSettings.othersSettings.disaster.PoliceCallData.FireReason; |
||||
hasTrapped = GameSettings.othersSettings.disaster.PoliceCallData.HasTrapped; |
||||
fireLevel = GameSettings.othersSettings.disaster.PoliceCallData.FireLevel; |
||||
hasDangerous = GameSettings.othersSettings.disaster.PoliceCallData.HasDangerous; ; |
||||
} |
||||
/// <summary> |
||||
/// 自定义练习模式下设置灾情设置按钮不可用 |
||||
/// </summary> |
||||
private void SetDisableInCustomPractice() |
||||
{ |
||||
if (!GameSettings.othersSettings.isSelectedDisaster) |
||||
{ |
||||
if (GameSettings.othersSettings.mode == Mode.Practice) |
||||
{ |
||||
Transform SettingPanel = transform.parent.Find("SettingPanel"); |
||||
SettingPanel.GetComponent<ToggleGroup>().SetAllTogglesOff(); |
||||
ScrollRect[] scrollrect = SettingPanel.GetComponentsInChildren<ScrollRect>(true); |
||||
for (int i = 0; i < scrollrect.Length; i++) |
||||
{ |
||||
Toggle[] alltoggle = scrollrect[i].GetComponentsInChildren<Toggle>(true); |
||||
Dropdown[] alldrop = scrollrect[i].GetComponentsInChildren<Dropdown>(true); |
||||
InputField[] allinput = scrollrect[i].GetComponentsInChildren<InputField>(true); |
||||
if (alltoggle.Length > 0) |
||||
{ |
||||
for (int toggle = 0; toggle < alltoggle.Length; toggle++) |
||||
{ |
||||
alltoggle[toggle].interactable = false; |
||||
} |
||||
} |
||||
if (alldrop.Length > 0) |
||||
{ |
||||
for (int drop = 0; drop < alldrop.Length; drop++) |
||||
{ |
||||
alldrop[drop].interactable = false; |
||||
} |
||||
} |
||||
if (allinput.Length > 0) |
||||
{ |
||||
for (int input = 0; input < allinput.Length; input++) |
||||
{ |
||||
allinput[input].interactable = false; |
||||
} |
||||
} |
||||
} |
||||
|
||||
} |
||||
} |
||||
} |
||||
} |
||||
using AX.MessageSystem; |
||||
using AX.NetworkSystem; |
||||
using System; |
||||
using System.Collections; |
||||
using System.Collections.Generic; |
||||
using UnityEngine; |
||||
using UnityEngine.UI; |
||||
|
||||
public class PoliceCallPanel : MonoBehaviour |
||||
{ |
||||
public Transform PoliceCloseButton; |
||||
|
||||
public Transform CallMan; |
||||
public Transform Phone; |
||||
public Transform FirePlace; |
||||
public Transform FireArea; |
||||
public Transform FireReason; |
||||
public Transform Trapped; |
||||
public Transform FireLeave; |
||||
public Transform Dangerous; |
||||
public Transform PoliceCallButton; |
||||
public Transform PoliceCallCancelButton; |
||||
|
||||
public Transform ArriveTimeTitle; |
||||
|
||||
public string callname; |
||||
public string phone; |
||||
public string firePlace; |
||||
public string fireReason; |
||||
public string fireArea; |
||||
public string fireLevel; |
||||
public string hasDangerous; |
||||
public string hasTrapped; |
||||
|
||||
private string errortext; |
||||
|
||||
private Transform P_FireLiquidLevel; |
||||
|
||||
private Transform dis; |
||||
private void Awake() |
||||
{ |
||||
dis = GameObject.Find("P_AllParent").transform.Find("P_Disasters"); |
||||
MessageDispatcher.AddListener("LOAD_UIDISASTER", LoadUIDisaster); |
||||
this.gameObject.SetActive(false); |
||||
|
||||
P_FireLiquidLevel = GameObject.Find("P_FireLiquidLevel").transform; |
||||
} |
||||
|
||||
// Use this for initialization |
||||
void Start() |
||||
{ |
||||
PoliceCloseButton.GetComponent<ButtonRecordByAC>().OutInterFaceButton = PoliceCloseButtonClick; |
||||
CallMan.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = CallManOnValueChange; |
||||
Phone.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = PhoneOnValueChange; |
||||
FirePlace.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FirePlaceOnValueChange; |
||||
FireArea.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireAreaOnValueChange; |
||||
FireReason.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = FireReasonOnValueChange; |
||||
FireLeave.GetComponent<DropDownRecordByAC>().OutInterFaceDropDown = FireLeaveOnValueChange; |
||||
Dangerous.GetComponent<InputFieldRecordByAC>().OutInterFaceInPutField = DangerousOnValueChange; |
||||
PoliceCallButton.GetComponent<ButtonRecordByAC>().OutInterFaceButton = PoliceCallButtonClick; |
||||
PoliceCallCancelButton.GetComponent<ButtonRecordByAC>().OutInterFaceButton = PoliceCallCancelOnClick; |
||||
|
||||
fireReason = "不详"; |
||||
fireArea = "不详"; |
||||
hasDangerous = "不详"; |
||||
fireLevel = "不详"; |
||||
} |
||||
|
||||
public void OnEnable() |
||||
{ |
||||
int trap_wound = dis.Find("P_TrappedPerson").childCount + dis.Find("P_Wounded").childCount; |
||||
Trapped.GetComponent<Text>().text = trap_wound > 0 ? "是" : "否"; |
||||
} |
||||
|
||||
private void OnDestroy() |
||||
{ |
||||
MessageDispatcher.RemoveListener("LOAD_UIDISASTER", LoadUIDisaster); |
||||
} |
||||
|
||||
private void LoadUIDisaster(IMessage obj) |
||||
{ |
||||
if (GameSettings.othersSettings.isSelectedDisaster) |
||||
{ |
||||
DataBind(); |
||||
if (GameSettings.othersSettings.mode != Mode.DisasterManagement) |
||||
{//若是练习或演习模式进入导调组界面,则不可以修改 |
||||
CallMan.GetComponent<InputField>().interactable = false; |
||||
Phone.GetComponent<InputField>().interactable = false; |
||||
FirePlace.GetComponent<InputField>().interactable = false; |
||||
FireArea.GetComponent<InputField>().interactable = false; |
||||
FireReason.GetComponent<InputField>().interactable = false; |
||||
FireLeave.GetComponent<Dropdown>().interactable = false; |
||||
Dangerous.GetComponent<InputField>().interactable = false; |
||||
} |
||||
else |
||||
{ |
||||
if (!GameSettings.disasterSetting.isEdit) |
||||
{//若是灾情库设置模式的查看,则不可以修改 |
||||
CallMan.GetComponent<InputField>().interactable = false; |
||||
Phone.GetComponent<InputField>().interactable = false; |
||||
FirePlace.GetComponent<InputField>().interactable = false; |
||||
FireArea.GetComponent<InputField>().interactable = false; |
||||
FireReason.GetComponent<InputField>().interactable = false; |
||||
FireLeave.GetComponent<Dropdown>().interactable = false; |
||||
Dangerous.GetComponent<InputField>().interactable = false; |
||||
PoliceCallButton.GetComponent<Button>().interactable = false; |
||||
} |
||||
else |
||||
{ |
||||
//若是灾情库设置模式的编辑,则可以修改 |
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
||||
private void PoliceCloseButtonClick() |
||||
{ |
||||
gameObject.SetActive(false); |
||||
} |
||||
|
||||
private void CallManOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
callname = value; |
||||
} |
||||
} |
||||
|
||||
private void PhoneOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
phone = value; |
||||
} |
||||
} |
||||
private void FirePlaceOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
firePlace = value; |
||||
} |
||||
} |
||||
|
||||
private void FireAreaOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
fireArea = value; |
||||
} |
||||
else |
||||
{ |
||||
fireArea = "不详"; |
||||
} |
||||
} |
||||
|
||||
private void FireReasonOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
fireReason = value; |
||||
} |
||||
else |
||||
{ |
||||
fireReason = "不详"; |
||||
} |
||||
} |
||||
|
||||
private void FireLeaveOnValueChange(int value) |
||||
{ |
||||
fireLevel = FireLeave.GetComponent<Dropdown>().captionText.text; |
||||
} |
||||
|
||||
private void DangerousOnValueChange(string value) |
||||
{ |
||||
if (!string.IsNullOrEmpty(value)) |
||||
{ |
||||
hasDangerous = value; |
||||
} |
||||
else |
||||
{ |
||||
hasDangerous = "不详"; |
||||
} |
||||
} |
||||
|
||||
private void PoliceCallButtonClick() |
||||
{ |
||||
if (string.IsNullOrEmpty(CallMan.GetComponent<InputField>().text) || CallMan.GetComponent<InputField>().text == "") |
||||
{ |
||||
errortext = "请填写报警人"; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow(errortext, 2f); |
||||
} |
||||
else |
||||
{ |
||||
|
||||
if (string.IsNullOrEmpty(Phone.GetComponent<InputField>().text) || Phone.GetComponent<InputField>().text == "") |
||||
{ |
||||
errortext = "请填写电话号码"; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow(errortext, 2f); |
||||
} |
||||
else |
||||
{ |
||||
|
||||
if (string.IsNullOrEmpty(FirePlace.GetComponent<InputField>().text) || FirePlace.GetComponent<InputField>().text == "") |
||||
{ |
||||
errortext = "请填写着火地点"; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow(errortext, 2f); |
||||
} |
||||
else |
||||
{ |
||||
PoliceCallData policedata = new PoliceCallData(); |
||||
policedata.UserId = CurrentUserInfo.mySelf.Id; |
||||
policedata.Name = callname; |
||||
policedata.Phone = phone; |
||||
policedata.FirePlace = firePlace; |
||||
policedata.FireArea = fireArea; |
||||
policedata.FireReason = fireReason; ; |
||||
// Transform dis = GameObject.Find("P_AllParent").transform.Find("P_Disasters"); |
||||
int trap_wound = dis.Find("P_TrappedPerson").childCount + dis.Find("P_Wounded").childCount; |
||||
policedata.HasTrapped = trap_wound > 0 ? "是" : "否"; |
||||
policedata.FireLevel = fireLevel; |
||||
policedata.HasDangerous = hasDangerous; |
||||
//时间键值对集合 |
||||
if (GameSettings.othersSettings.mode != Mode.DisasterManagement) |
||||
{ |
||||
policedata.RoomID = CurrentUserInfo.room.Id; |
||||
|
||||
policedata.ArriveTimeList = ArriveTimeTitle.GetComponent<ArriveTimeContent>().ArriveTimeList; |
||||
//Debug.Log(policedata.Name+"/"+policedata.Phone+"/"+policedata.FirePlace+"/"+policedata.FireArea+"/" |
||||
// +policedata.FireReason+"/"+policedata.HasTrapped+"/"+policedata.HasDangerous+"/"+policedata.FireLevel); |
||||
|
||||
NetworkManager.Default.SendAsync("POLICE_CALL_SYNC", policedata); |
||||
|
||||
CallMan.GetComponent<InputField>().interactable = false; |
||||
Phone.GetComponent<InputField>().interactable = false; |
||||
FirePlace.GetComponent<InputField>().interactable = false; |
||||
FireArea.GetComponent<InputField>().interactable = false; |
||||
FireReason.GetComponent<InputField>().interactable = false; |
||||
FireLeave.GetComponent<Dropdown>().interactable = false; |
||||
Dangerous.GetComponent<InputField>().interactable = false; |
||||
LoadPromptWin.Instance.LoadTextPromptWindow("已报警", 1f); |
||||
PoliceCallButton.GetComponent<Button>().interactable = false; |
||||
|
||||
GameSettings.othersSettings.isStartDrill = true; |
||||
transform.parent.Find("TopPanel/Tool/Button").GetComponentInChildren<Text>().text = "结束"; |
||||
SetDisableInCustomPractice(); |
||||
//导调组赋值灾情设置信息 |
||||
//if (FindObjectOfType<DrillBeginButton>()&&FindObjectOfType<VictoryConditionPanel>()) |
||||
//{ |
||||
// FindObjectOfType<DrillBeginButton>().Victorysetting = FindObjectOfType<VictoryConditionPanel>().VictoryConditionSetting(); |
||||
//} |
||||
|
||||
if (transform.parent.Find("TopPanel/Tool/Button").GetComponent<DrillBeginButton>() |
||||
&& transform.parent.Find("SettingPanel/VictoryConditionTitle").GetComponent<VictoryConditionPanel>()) |
||||
{ |
||||
transform.parent.Find("TopPanel/Tool/Button").GetComponent<DrillBeginButton>().Victorysetting = |
||||
transform.parent.Find("SettingPanel/VictoryConditionTitle").GetComponent<VictoryConditionPanel>().VictoryConditionSetting(); |
||||
|
||||
} |
||||
// OilSetManager.GetInstance.SetInteractable();//油罐UI设置 |
||||
//给导调组赋值报警信息 |
||||
GameSettings.disasterSetting.policeCallData = policedata; |
||||
MessageDispatcher.SendMessage("police_call"); |
||||
|
||||
//向服务端申请开始计时 |
||||
KeyValuePair<long, bool> pair = new KeyValuePair<long, bool>(CurrentUserInfo.room.Id, true); |
||||
NetworkManager.Default.SendAsync("TIMER_ENABLE_SYNC", pair); |
||||
|
||||
foreach (Transform child in P_FireLiquidLevel) |
||||
{ |
||||
if (child.GetComponent<FireLiquidLevelCtrl>().showTime != "00:00:00") |
||||
{ |
||||
NetworkManager.Default.SendAsync("SET_LIQUIP_HIDE_SYNC", child.GetComponent<BaseGameObjInfo>().gameObjID); |
||||
child.gameObject.SetActive(false); |
||||
} |
||||
} |
||||
} |
||||
|
||||
StartCoroutine(Close()); |
||||
} |
||||
} |
||||
} |
||||
} |
||||
private void PoliceCallCancelOnClick() |
||||
{ |
||||
gameObject.SetActive(false); |
||||
} |
||||
private IEnumerator Close() |
||||
{ |
||||
yield return new WaitForSeconds(1f); |
||||
gameObject.SetActive(false); |
||||
} |
||||
/// <summary> |
||||
/// 灾情库进来报警信息绑定 |
||||
/// </summary> |
||||
private void DataBind() |
||||
{ |
||||
CallMan.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.Name; |
||||
Phone.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.Phone; |
||||
FirePlace.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.FirePlace; |
||||
FireArea.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.FireArea; |
||||
FireReason.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.FireReason; |
||||
Trapped.GetComponent<Text>().text = GameSettings.othersSettings.disaster.PoliceCallData.HasTrapped; |
||||
Dropdown drop = FireLeave.GetComponent<Dropdown>(); |
||||
for (int i = 0; i < drop.options.Count; i++) |
||||
{ |
||||
if (drop.options[i].text == GameSettings.othersSettings.disaster.PoliceCallData.FireLevel) |
||||
{ |
||||
drop.value = i; |
||||
} |
||||
} |
||||
Dangerous.GetComponent<InputField>().text = GameSettings.othersSettings.disaster.PoliceCallData.HasDangerous; |
||||
callname = GameSettings.othersSettings.disaster.PoliceCallData.Name; |
||||
phone = GameSettings.othersSettings.disaster.PoliceCallData.Phone; |
||||
firePlace = GameSettings.othersSettings.disaster.PoliceCallData.FirePlace; |
||||
fireArea = GameSettings.othersSettings.disaster.PoliceCallData.FireArea; ; |
||||
fireReason = GameSettings.othersSettings.disaster.PoliceCallData.FireReason; |
||||
hasTrapped = GameSettings.othersSettings.disaster.PoliceCallData.HasTrapped; |
||||
fireLevel = GameSettings.othersSettings.disaster.PoliceCallData.FireLevel; |
||||
hasDangerous = GameSettings.othersSettings.disaster.PoliceCallData.HasDangerous; ; |
||||
} |
||||
/// <summary> |
||||
/// 自定义练习模式下设置灾情设置按钮不可用 |
||||
/// </summary> |
||||
private void SetDisableInCustomPractice() |
||||
{ |
||||
if (!GameSettings.othersSettings.isSelectedDisaster) |
||||
{ |
||||
if (GameSettings.othersSettings.mode == Mode.Practice) |
||||
{ |
||||
Transform SettingPanel = transform.parent.Find("SettingPanel"); |
||||
SettingPanel.GetComponent<ToggleGroup>().SetAllTogglesOff(); |
||||
ScrollRect[] scrollrect = SettingPanel.GetComponentsInChildren<ScrollRect>(true); |
||||
for (int i = 0; i < scrollrect.Length; i++) |
||||
{ |
||||
Toggle[] alltoggle = scrollrect[i].GetComponentsInChildren<Toggle>(true); |
||||
Dropdown[] alldrop = scrollrect[i].GetComponentsInChildren<Dropdown>(true); |
||||
InputField[] allinput = scrollrect[i].GetComponentsInChildren<InputField>(true); |
||||
if (alltoggle.Length > 0) |
||||
{ |
||||
for (int toggle = 0; toggle < alltoggle.Length; toggle++) |
||||
{ |
||||
alltoggle[toggle].interactable = false; |
||||
} |
||||
} |
||||
if (alldrop.Length > 0) |
||||
{ |
||||
for (int drop = 0; drop < alldrop.Length; drop++) |
||||
{ |
||||
alldrop[drop].interactable = false; |
||||
} |
||||
} |
||||
if (allinput.Length > 0) |
||||
{ |
||||
for (int input = 0; input < allinput.Length; input++) |
||||
{ |
||||
allinput[input].interactable = false; |
||||
} |
||||
} |
||||
} |
||||
Transform OilTankSet = transform.parent.Find("OilTankSet"); |
||||
OilTankSet.GetComponent<OilSetManager>().SetInteractable(); |
||||
|
||||
} |
||||
} |
||||
} |
||||
} |
||||
|
@ -1,9 +1,9 @@
|
||||
{ |
||||
"resolutionX": 1366, |
||||
"resolutionY": 768, |
||||
"isFullScreen": false, |
||||
"bgmValue": 0.4214285612106323, |
||||
"seValue": 0.443526953458786, |
||||
"isMuto": false, |
||||
"frameSelect": 1 |
||||
{ |
||||
"resolutionX": 1366, |
||||
"resolutionY": 768, |
||||
"isFullScreen": false, |
||||
"bgmValue": 0.4214285612106323, |
||||
"seValue": 0.443526953458786, |
||||
"isMuto": false, |
||||
"frameSelect": 1 |
||||
} |
Before Width: | Height: | Size: 561 KiB After Width: | Height: | Size: 790 KiB |
Loading…
Reference in new issue