using System.Collections; using System.Collections.Generic; using UnityEngine; /// /// 克隆物体对象名生成工具 /// public class CloneObjNameTool { private static CloneObjNameTool instance; private Dictionary> cloneObjectNumber; private CloneObjNameTool() { cloneObjectNumber = new Dictionary>(); } public static CloneObjNameTool Instance() { if (instance == null) { instance = new CloneObjNameTool(); } return instance; } /// /// 获取克隆对象的编号 /// /// 组织机构名 /// 克隆类型 /// public int GetCloneObjectNumber(string deptName, CloneObjType cloneObjType) { int number = 1; if (cloneObjectNumber.ContainsKey(deptName)) {//如果已存在这个组织机构 var cloneObjTypes = cloneObjectNumber[deptName];//获取这个组织机构下已经克隆的类型数组 if (cloneObjTypes.ContainsKey(cloneObjType)) { //如果存在克隆对象类型返回+1值 number = ++cloneObjTypes[cloneObjType]; } else { //如果没有克隆对象类型添加这个类型 cloneObjTypes.Add(cloneObjType, number); } } else { //如果没有这个组织机构,创建克隆对象类型,将克隆对象类型添加到组织机构 var cloneObjTypes = new Dictionary(); cloneObjTypes.Add(cloneObjType, number); cloneObjectNumber.Add(deptName, cloneObjTypes); } return number; } /// /// 获取克隆对象的对象名称 /// public string GetCloneObjectName(CloneObjType cloneObjType) { string name = ""; var deptName = ""; if (GameSettings.othersSettings.mode != Mode.DisasterManagement) { deptName = CurrentUserInfo.organization.DisplayName; } else { deptName = "灾情"; } var cloneObjTypeName = cloneObjType.ToString(); var number = GetCloneObjectNumber(deptName, cloneObjType); name = deptName + "-" + cloneObjTypeName + "-" + number; return name; } public void ResertCloneObjNameTool() { cloneObjectNumber.Clear(); } }