Example #1
0
    /// <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");
            }
        }
    }
Example #2
0
    /// <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");
            }
        }
    }