public GameObject SetupDrivePrefab() { if (drive.dirDriveFacade) { Undo.DestroyObjectImmediate(drive.dirDriveFacade.gameObject); } if (drive.rotDriveFacade) { Undo.DestroyObjectImmediate(drive.rotDriveFacade.gameObject); } GameObject prefab = PrefabsXR.GetDrive(drive.driveType, drive.interactType); GameObject newDrive = Instantiate(prefab, drive.transform); newDrive.transform.SetAsFirstSibling(); newDrive.name = prefab.name; if (drive.driveType == DriveObject.DriveType.Directional) { drive.dirDriveFacade = newDrive.GetComponent <DirectionalDriveFacade>(); } else { drive.rotDriveFacade = newDrive.GetComponent <RotationalDriveFacade>(); } drive.interactibleObject = newDrive.GetComponentInChildren <InteractibleObject>(); Undo.RegisterCreatedObjectUndo(newDrive.gameObject, ""); return(newDrive.gameObject); }
public static PlayerComponent CreateComponent(PlayerComponent.ComponentTypes _type, PlayerRig _rig) { var tempObject = PrefabsXR.GetPlayerComponent(_type); if (!tempObject) { return(null); } var instantiatedObject = Instantiate(tempObject, _rig.transform).GetComponent <PlayerComponent>(); //var instantiatedObject = ((GameObject)PrefabUtility.InstantiatePrefab()); instantiatedObject.Setup(_rig); Undo.RegisterCreatedObjectUndo(instantiatedObject.gameObject, $"Added {_type} Component"); return(instantiatedObject); }