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.
53 lines
1.8 KiB
53 lines
1.8 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); |
|
} |
|
} |
|
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; |
|
} |
|
}
|
|
|