示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }