public static void CreateMatchingMeshCollision(Transform parent, Transform visualToCopy) { if (visualToCopy.childCount == 0) { return; } GameObject objectToCopy = visualToCopy.GetChild(0).gameObject; GameObject prefabObject = (GameObject)RuntimeUrdf.PrefabUtility_GetCorrespondingObjectFromSource(objectToCopy); GameObject collisionObject; if (prefabObject != null) { collisionObject = (GameObject)RuntimeUrdf.PrefabUtility_InstantiatePrefab(prefabObject); } else { collisionObject = Object.Instantiate(objectToCopy); } collisionObject.name = objectToCopy.name; ConvertMeshToColliders(collisionObject); collisionObject.transform.SetParentAndAlign(parent); }
private static GameObject CreateMeshVisual(Link.Geometry.Mesh mesh) { #if UNITY_EDITOR if (!RuntimeUrdf.IsRuntimeMode()) { GameObject meshObject = LocateAssetHandler.FindUrdfAsset <GameObject>(mesh.filename); return(meshObject == null ? null : (GameObject)RuntimeUrdf.PrefabUtility_InstantiatePrefab(meshObject)); } #endif return(CreateMeshVisualRuntime(mesh)); }
private static GameObject CreateMeshCollider(Link.Geometry.Mesh mesh) { if (!RuntimeUrdf.IsRuntimeMode()) { GameObject prefabObject = LocateAssetHandler.FindUrdfAsset <GameObject>(mesh.filename); if (prefabObject == null) { Debug.LogError("Unable to create mesh collider for the mesh: " + mesh.filename); return(null); } GameObject meshObject = (GameObject)RuntimeUrdf.PrefabUtility_InstantiatePrefab(prefabObject); ConvertMeshToColliders(meshObject, location: mesh.filename); return(meshObject); } return(CreateMeshColliderRuntime(mesh)); }
public void PrefabUtility_InstantiatePrefab_GameObject() { RuntimeUrdf.runtimeModeEnabled = false; Assert.IsNotNull(RuntimeUrdf.PrefabUtility_InstantiatePrefab(testObject)); }