public override void OnInspectorGUI() { DrawDefaultInspector(); PartsSpawnManager partsSpawnManager = (PartsSpawnManager)target; if (GUILayout.Button("Generate Parts Pool")) { partsSpawnManager.GenerateAllInitialPartPools(); } }
public void InitializeHandler() { startingPartType = partType; allAttatchedBasePartTypes.Add(startingPartType); justLeftHandPartLayerMask = LayerMask.GetMask(new string[] { "LeftHandPart" }); justRightHandPartLayerMask = LayerMask.GetMask(new string[] { "RightHandPart" }); physicsObjectHandler = GetComponent <GeneralPhysicsObjectHandler>(); grabInteractableScript = GetComponent <XRGrabInteractable>(); mainRenderer = GetComponent <Renderer>(); mainPartColl = GetComponent <Collider>(); rb = GetComponent <Rigidbody>(); generalSoundEffectPlayer = FindObjectOfType <GeneralSoundEffectPlayer>(); // If it has sub parts to manage... if (subPartInfoByObject.Count > 0) { handGrabbingController = FindObjectOfType <HandGrabbingController>(); if (handGrabbingController == null) { Debug.LogError($"ERROR - ({gameObject.name}) - Could not find object of type HandGrabbingController"); return; } foreach (GameObject subPart in subPartInfoByObject.Keys) { Collider subPartBaseColl = subPart.GetComponent <Collider>(); if (subPartBaseColl != null) { subPartBaseColl.enabled = false; } // Disable the extra colls and renderers subPart.transform.GetChild(0).gameObject.SetActive(false); Renderer subPartRenderer = subPart.GetComponent <Renderer>(); if (subPartRenderer != null) { subPartRenderer.enabled = false; } subPart.transform.GetChild(1).GetChild(1).gameObject.SetActive(false); DropZoneHandler dropZoneHandler = subPart.transform.GetChild(1).GetChild(0).GetComponent <DropZoneHandler>(); dropZoneHandler.SetConnectedConveyorBeltHandler(this); dropZoneHandler.SetActiveTriggerLayerMask(0); // Notify it when an object is released to check if it is under a trigger handGrabbingController.AddOnObjectReleasedListener(dropZoneHandler.OnObjectReleased); allDropZoneHandlers.Add(dropZoneHandler); } } initialInteractableGrabbableLayerMask = grabInteractableScript.interactionLayerMask; partsSpawnManager = FindObjectOfType <PartsSpawnManager>(); physicsObjectHandler.InitializeHandler(); // Initialize with all parts disabled OnPartDisabled(false); hasInitializedOnce = true; }