예제 #1
0
        public static GameObject BuildNode(ref SceneNode node, Transform parent, GameObject obj)
        {
            if (node.GetType() == typeof(SceneNodeGeo))
            {
                SceneNodeGeo nodeGeo = (SceneNodeGeo)Convert.ChangeType(node, typeof(SceneNodeGeo));
                return(CreateObject(nodeGeo, parent));
            }
            else if (node.GetType() == typeof(SceneNodeLight))
            {
                SceneNodeLight nodeLight = (SceneNodeLight)Convert.ChangeType(node, typeof(SceneNodeLight));
                GameObject     _obj      = CreateLight(nodeLight, parent);
                SceneLoader.SelectableLights.Add(_obj);
                return(_obj);
            }
            else if (node.GetType() == typeof(SceneNodeCam))
            {
                SceneNodeCam nodeCam = (SceneNodeCam)Convert.ChangeType(node, typeof(SceneNodeCam));
                // make the camera editable
                nodeCam.editable = true;
                return(CreateCamera(nodeCam, parent));
            }
            else if (node.GetType() == typeof(SceneNode))
            {
                return(CreateNode(node, parent));
            }

            return(null);
        }
예제 #2
0
        private int createSceneGraphIter(Transform parent, int idx)
        {
            GameObject obj = null;     // = new GameObject( scnObjKtn.rawNodeList[idx].name );

            SceneNode node = sceneDataHandler.NodeList[idx];


            if (node.GetType() == typeof(SceneNodeGeo))
            {
                SceneNodeGeo nodeGeo = (SceneNodeGeo)Convert.ChangeType(node, typeof(SceneNodeGeo));
                obj = createObject(nodeGeo, parent);
            }
            else if (node.GetType() == typeof(SceneNodeLight))
            {
                SceneNodeLight nodeLight = (SceneNodeLight)Convert.ChangeType(node, typeof(SceneNodeLight));
                obj = createLight(nodeLight, parent);
            }
            else if (node.GetType() == typeof(SceneNodeCam))
            {
                SceneNodeCam nodeCam = (SceneNodeCam)Convert.ChangeType(node, typeof(SceneNodeCam));
                obj = createCamera(nodeCam, parent);
                // make the camera editable
                nodeCam.editable = true;
            }
            else if (node.GetType() == typeof(SceneNodeMocap))
            {
                SceneNodeMocap nodeMocap = (SceneNodeMocap)Convert.ChangeType(node, typeof(SceneNodeMocap));
                obj = createMocap(nodeMocap, parent);

                // HACK
                SceneObject scnObj = obj.AddComponent <SceneObject>();
                scnObj.isMocapTrigger = true;
            }
            else
            {
                obj = createNode(node, parent);
            }

            // add scene object to editable
            if (node.editable)
            {
                sceneEditableObjects.Add(obj);
            }

            // recursive call
            int idxChild = idx;

            for (int k = 1; k <= node.childCount; k++)
            {
                idxChild = createSceneGraphIter(obj.transform, idxChild + 1);
            }

            return(idxChild);
        }
예제 #3
0
        public static GameObject BuildNode(ref SceneNode node, Transform parent, GameObject obj)
        {
            if (node.GetType() == typeof(SceneNodeMocap))
            {
                SceneNodeMocap nodeMocap = (SceneNodeMocap)Convert.ChangeType(node, typeof(SceneNodeMocap));
                return(createMocap(nodeMocap, parent));
            }

            return(null);
        }
예제 #4
0
        public static GameObject BuildNode(ref SceneNode node, Transform parent, GameObject obj, bool resetID, ref List <Tuple <Renderer, string, string[]> > skinnedMeshRootBones)
        {
            if (resetID)
            {
                idCount = 0;
            }
            if (node.GetType() == typeof(SceneNodeGeo))
            {
                SceneNodeGeo nodeGeo = (SceneNodeGeo)Convert.ChangeType(node, typeof(SceneNodeGeo));
                return(CreateObject(nodeGeo, parent));
            }
            else if (node.GetType() == typeof(SceneNodeSkinnedGeo))
            {
                SceneNodeSkinnedGeo nodeSkinnedGeo = (SceneNodeSkinnedGeo)Convert.ChangeType(node, typeof(SceneNodeSkinnedGeo));
                return(CreateSkinnedObject(nodeSkinnedGeo, parent, ref skinnedMeshRootBones));
            }
            else if (node.GetType() == typeof(SceneNodeLight))
            {
                SceneNodeLight nodeLight = (SceneNodeLight)Convert.ChangeType(node, typeof(SceneNodeLight));
                GameObject     _obj      = CreateLight(nodeLight, parent);
                SceneLoader.SelectableLights.Add(_obj);
                return(_obj);
            }
            else if (node.GetType() == typeof(SceneNodeCam))
            {
                SceneNodeCam nodeCam = (SceneNodeCam)Convert.ChangeType(node, typeof(SceneNodeCam));
                // make the camera editable
                // nodeCam.editable = true;
                return(CreateCamera(nodeCam, parent));
            }
            else if (node.GetType() == typeof(SceneNode))
            {
                return(CreateNode(node, parent));
            }


            return(null);
        }