private static void createNewBuildSetup() { string path = "Assets"; foreach (UnityEngine.Object obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets)) { path = AssetDatabase.GetAssetPath(obj); if (!string.IsNullOrEmpty(path) && File.Exists(path)) { path = Path.GetDirectoryName(path); break; } } path = Path.Combine(path, DEFAULT_ASSET_NAME); path = AssetDatabase.GenerateUniqueAssetPath(path); InteractionMaterial material = CreateInstance <InteractionMaterial>(); AssetDatabase.CreateAsset(material, path); material._holdingPoseController = createDefaultAsset <HoldingPoseControllerKabsch>(material); material._moveToController = createDefaultAsset <MoveToControllerVelocity>(material); material._suspensionController = createDefaultAsset <SuspensionControllerDefault>(material); material._throwingController = createDefaultAsset <ThrowingControllerPalmVelocity>(material); AssetDatabase.SaveAssets(); Selection.activeObject = material; }
public PhysicMaterialReplacer(Transform anchor, InteractionMaterial material) { _colliders = anchor.GetComponentsInChildren <Collider>(true); _originalMaterials = _colliders.Select(c => c.sharedMaterial).ToArray(); switch (material.PhysicMaterialMode) { case InteractionMaterial.PhysicMaterialModeEnum.NoAction: _replacementMaterials = null; break; case InteractionMaterial.PhysicMaterialModeEnum.DuplicateExisting: _replacementMaterials = _originalMaterials.Select(m => { PhysicMaterial newMat; if (m == null) { newMat = new PhysicMaterial(); newMat.name = "Grasping Material"; } else { newMat = Object.Instantiate(m); newMat.name = m.name + " (Grasping Instance)"; } newMat.bounciness = 0; return(newMat); }).ToArray(); break; case InteractionMaterial.PhysicMaterialModeEnum.Replace: _replacementMaterials = _originalMaterials.Select(m => material.ReplacementPhysicMaterial).ToArray(); break; } }
private static T createDefaultAsset <T>(InteractionMaterial material) where T : ScriptableObject { T t = CreateInstance <T>(); t.hideFlags = HideFlags.HideInHierarchy | HideFlags.HideInInspector; AssetDatabase.AddObjectToAsset(t, material); return(t); }
public ControllerContainer(InteractionBehaviour obj, InteractionMaterial material) { _material = material; _holdingPoseController = new DefinableController <IHoldingPoseController>(_material.CreateHoldingPoseController(obj)); _layerController = new DefinableController <ILayerController>(_material.CreateLayerController(obj)); _moveToController = new DefinableController <IMoveToController>(_material.CreateMoveToController(obj)); _suspensionController = new DefinableController <ISuspensionController>(_material.CreateSuspensionController(obj)); _throwingController = new DefinableController <IThrowingController>(_material.CreateThrowingController(obj)); }
private void CheckMaterial() { if (_material == null) { if (_manager == null) { return; } else { Debug.LogWarning("No InteractionMaterial specified; will use the default InteractionMaterial as specified by the InteractionManager."); _material = _manager.DefaultInteractionMaterial; } } }