大连中石油电子沙盘
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

67 lines
2.6 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AX.InputSystem;
using System;
public class Cloneable : GameObjectCloneable
{
//克隆地点需要限制的克隆类型
private List<CloneObjType> CloneableTypes = new List<CloneObjType>();
void Start()
{
for (int i = (int)CloneObjType.HighSprayingTruck; i <= (int)CloneObjType.WhiteCar; i++)//车辆
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.SafetyOfficer; i <= (int)CloneObjType.VolunteerFireman; i++)//人员
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.Wounded; i <= (int)CloneObjType.FireMan; i++)//灾情
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.WarningLine; i <= (int)CloneObjType.InitialSave; i++)//工具
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.BaseStation4G; i <= (int)CloneObjType.IntegratedPlatform; i++)//通讯保障
{
CloneableTypes.Add((CloneObjType)i);
}
for (int i = (int)CloneObjType.RemoteWaterSupplyTruck; i <= (int)CloneObjType.DryPowderFireTruck; i++)//新增车辆
{
CloneableTypes.Add((CloneObjType)i);
}
CloneableTypes.Add(CloneObjType.FireOpenType);//敞开式燃烧
CloneableTypes.Add(CloneObjType.NaturalWater);//天然水源
CloneableTypes.Add(CloneObjType.SafeArea);//安全区
CloneableTypes.Add(CloneObjType.PressureConnection);//试压口
CloneableTypes.Add(CloneObjType.SemifixedDevice);//半固定注水装置
CloneableTypes.Add(CloneObjType.TankCar);//槽罐车
CloneableTypes.Add(CloneObjType.TrafficPoliceCar);//交警车
CloneableTypes.Add(CloneObjType.EnvironmentalCar);//环保车
CloneableTypes.Add(CloneObjType.WeatherBureauCar);//气象车
CloneableTypes.Add(CloneObjType.PowerSupplyCar);//供电局车
}
public override bool GetCloneAble(GameObject hitObj, CloneObjType cloneObjType)
{
bool clone = false;
//如果是受克隆地点限制需要判断能否在该地点克隆
if (CloneableTypes.Contains(cloneObjType))
{
var cloneableEnums = hitObj.GetComponent<CloneableEnums>();
if (cloneableEnums && cloneableEnums.CloneableTypes.Contains(cloneObjType))
{
clone = true;
}
}
//如果不受克隆地点限制直接能克隆
else
{
clone = true;
}
return clone;
}
}