/// <summary> /// 获取所在区域ID /// </summary> private void GetDepId() { DepDoors dep = transform.GetComponentInParent <DepDoors>(); if (dep) { _parentID = dep.DoorDep.NodeID; } }
/// <summary> /// 添加门控制脚本 /// </summary> private static DepDoors AddWallDoors(DepDoors depDoors, Transform DoorContainer) { foreach (Transform child in DoorContainer) { DoorAccessItem item = GetDoorAccessItem(child); if (item != null) { depDoors.DoorList.Add(item); } } return(depDoors); }
/// <summary> /// 添加门控制脚本 /// </summary> private static DepDoors AddChildDoorManage(Transform DoorContainer) { DepDoors depDoors = DoorContainer.gameObject.AddMissingComponent <DepDoors>(); DepNode node = DoorContainer.GetComponentInParent <DepNode>(); node.InitDoor(depDoors); foreach (Transform child in DoorContainer) { DoorAccessItem item = GetDoorAccessItem(child); if (item != null) { depDoors.DoorList.Add(item); } } return(depDoors); }
public static void InitDoorControl(Transform childTransform) { foreach (Transform child in childTransform) { if (child.name.Contains(DoorContainerName)) { DepDoors depDoors = AddChildDoorManage(child); foreach (Transform child2 in childTransform)//主厂房的墙壁下面也有门 { if (child2.name.Contains("_Wall")) { AddWallDoors(depDoors, child2); } } } else { InitDoorControl(child); } } }
void FindDoorListInChild(Transform childTransform) { foreach (Transform child in childTransform) { if (child.name.Contains(DoorContainerName)) { //Debug.Log(child.name); DepDoors depDoors = AddChildDoorManage(child); foreach (Transform child2 in childTransform)//主厂房的墙壁下面也有门 { if (child2.name.Contains("_Wall")) { AddWallDoors(depDoors, child2); } } } else { FindDoorListInChild(child); } } }
IEnumerator FindDoorListInChildCoroutine(Transform childTransform) { foreach (Transform child in childTransform) { if (child.name.Contains(DoorContainerName)) { //Debug.Log(child.name); DepDoors depDoors = AddChildDoorManage(child); foreach (Transform child2 in childTransform)//主厂房的墙壁下面也有门 { if (child2.name.Contains("_Wall")) { AddWallDoors(depDoors, child2); } } } else { StartCoroutine(FindDoorListInChildCoroutine(child)); } yield return(null); } }
public void InitDoor(DepDoors door) { door.DoorDep = this; Doors = door; }