/// <summary> /// Called upon event OnModelImported in UrdfAssetImporterRuntime, when 3d model is imported. /// </summary> /// <param name="sender"></param> /// <param name="args">Contains imported GameObject.</param> private void OnModelImported(object sender, ImportedModelEventArgs args) { //Debug.Log("URDF: model imported"); Transform importedModel = args.RootGameObject.transform; UrdfRobot[] urdfRobots = importedModel.GetComponentsInParent <UrdfRobot>(true); if (urdfRobots != null) { UrdfRobot urdfRobot = urdfRobots[0]; // TODO: make sure that this robotModel check really works // check if imported model corresponds to this robot RobotModel robotModel = GetRobotModel(urdfRobot.gameObject); if (robotModel != null) { if (args.CollidersOnly) { robotModel.SetLinkCollisionLoaded(importedModel.GetComponentsInParent <UrdfLink>(true)[0].name, importedModel.GetComponentsInParent <UrdfCollision>(true)[0]); } else { robotModel.SetLinkVisualLoaded(importedModel.GetComponentsInParent <UrdfLink>(true)[0].name, importedModel.GetComponentsInParent <UrdfVisual>(true)[0]); } //Debug.Log("URDF: model of the link: " + importedModel.parent.parent.parent.parent.name + " imported"); } } }
/// <summary> /// Called upon event ColladaImporter.Instance.OnModelImported, when DAE file is imported. /// </summary> /// <param name="sender"></param> /// <param name="args">Contains imported GameObject.</param> private void OnColladaModelImported(object sender, ImportedColladaEventArgs args) { Debug.Log("URDF: Collada model imported"); Transform importedModel = args.Data.transform; UrdfRobot[] urdfRobots = importedModel.GetComponentsInParent <UrdfRobot>(true); if (urdfRobots != null) { UrdfRobot urdfRobot = urdfRobots[0]; // TODO: make sure that this robotModel check really works // check if imported model corresponds to this robot RobotModel robotModel = GetRobotModel(urdfRobot.gameObject); if (robotModel != null) { // get rid of the placeholder object (New Game Object) Transform placeholderGameObject = importedModel.parent; importedModel.SetParent(placeholderGameObject.parent, worldPositionStays: false); //TODO: Temporarily, colliders are added directly to Visuals AddColliders(importedModel.gameObject, setConvex: true); Destroy(placeholderGameObject.gameObject); robotModel.SetLinkVisualLoaded(importedModel.parent.parent.parent.name, importedModel.parent.gameObject.GetComponent <UrdfVisual>()); Debug.Log("URDF: dae model of the link: " + importedModel.parent.parent.parent.name + " imported"); } } }