Beispiel #1
0
        public static GameObject Create(this Link.Visual visual, GameObject parent)
        {
            GameObject gameObject = new GameObject((visual.name == null) ? "unnamed" : visual.name);

            gameObject.transform.SetParentAndAlign(parent.transform);

            if (visual.origin != null)
            {
                visual.origin.SetTransform(gameObject);
            }

            visual.geometry.CreateVisual(gameObject);


            if (visual.material != null)
            {
                UrdfAssetDatabase.SetMaterial(gameObject, visual.material.name);
            }

            if (gameObject.GetComponentInChildren <Renderer>().sharedMaterial == null)
            {
                UrdfAssetDatabase.SetDefaultMaterial(gameObject);
            }

            return(gameObject);
        }
Beispiel #2
0
        public static GameObject CreateCollider(this Link.Geometry.Mesh mesh, GameObject parent)
        {
            GameObject gameObject = new GameObject(mesh.filename + "(MeshCollider)");
            Transform  reference  = AssetDatabase.LoadAssetAtPath <Transform>(UrdfAssetDatabase.GetAssetPathFromPackagePath(mesh.filename));

            gameObject.transform.position   = reference.position;
            gameObject.transform.rotation   = reference.rotation;
            gameObject.transform.localScale = reference.localScale;

            MeshCollider meshCollider = gameObject.AddComponent <MeshCollider>();

            meshCollider.sharedMesh = AssetDatabase.LoadAssetAtPath <Mesh>(UrdfAssetDatabase.GetAssetPathFromPackagePath(mesh.filename));
            //meshCollider.convex = true;

            gameObject.transform.SetParentAndAlign(parent.transform);
            mesh.setScale(gameObject);

            return(gameObject);
        }
Beispiel #3
0
        public static GameObject Create(this Robot robot)
        {
            if (UrdfAssetDatabase.GetAssetPath(robot.filename) == null)
            {
                Debug.LogError("URDF file and ressources must be placed in Assets Folder:\n" + Application.dataPath);
                return(null);
            }

            UrdfAssetDatabase.Initialize(robot);

            GameObject gameObject = new GameObject(robot.name);

            robot.root.Create(gameObject);

            GameObjectUtility.SetParentAndAlign(gameObject, Selection.activeObject as GameObject);
            Undo.RegisterCreatedObjectUndo(gameObject, "Create " + gameObject.name);
            Selection.activeObject = gameObject;

            setKinematic(gameObject, true);

            return(gameObject);
        }
Beispiel #4
0
        public static GameObject CreateVisual(this Link.Geometry.Mesh mesh, GameObject parent)
        {
            GameObject gameObject = Object.Instantiate(AssetDatabase.LoadAssetAtPath <GameObject>(UrdfAssetDatabase.GetAssetPathFromPackagePath(mesh.filename)));

            gameObject.transform.SetParentAndAlign(parent.transform);
            mesh.setScale(gameObject);
            return(gameObject);
        }