private void DoInteractableChangeID() { List <InteractClashed> List_CollideEntities = new List <InteractClashed>(); InteractableScript[] allInteractableScripts = targetIsland.GetComponentsInChildren <InteractableScript>(); Undo.RegisterFullObjectHierarchyUndo(targetIsland.gameObject, "Interactables ID resolve"); foreach (var script in allInteractableScripts) { InteractClashed iClashed = new InteractClashed(); iClashed.entityID = script.entityID_; iClashed.gameobjectName = script.gameObject.name; var matchedClash = List_CollideEntities.Find(x => x.entityID == iClashed.entityID); if (matchedClash != null) { var EntityID = script.gameObject.name + "_" + script.gameObject.GetInstanceID().ToString(); Debug.Log($"Resolved: {matchedClash.gameobjectName}, ID: {matchedClash.entityID} to {EntityID}"); script.GenerateID_ByInstance(); } List_CollideEntities.Add(iClashed); } }
private void DetectInteractable() { List <InteractClashed> List_CollideEntities = new List <InteractClashed>(); InteractableScript[] allInteractableScripts = targetIsland.GetComponentsInChildren <InteractableScript>(); foreach (var script in allInteractableScripts) { InteractClashed iClashed = new InteractClashed(); iClashed.entityID = script.entityID_; iClashed.gameobjectName = script.gameObject.name; var matchedClash = List_CollideEntities.Find(x => x.entityID == iClashed.entityID); if (matchedClash != null) { Debug.LogWarning($"Object: {matchedClash.gameobjectName}, ID: {matchedClash.entityID} already exist! " + $"Clashed: {iClashed.gameobjectName}, {iClashed.entityID}"); } List_CollideEntities.Add(iClashed); } }