コード例 #1
0
        public void OnLoad(object sender, EventArgs e)
        {
            var groundModel   = GltfImporter.Load("./Resources/Models/test_1.gltf");
            var playerModel   = GltfImporter.Load("./Resources/Models/postpose.gltf");
            var pineTreeModel = GltfImporter.Load("./Resources/Models/pine_tree_1.gltf");

            foreach (var mesh in playerModel.Meshes)
            {
                mesh.Material = new BasicShadedColoredMaterial();
            }

            foreach (var mesh in pineTreeModel.Meshes)
            {
                mesh.Material = new BasicShadedColoredMaterial();
            }

            var groundMaterial = new BasicShadedMaterial()
            {
                Color = new Vector3(1, 1, 1)
            };

            foreach (var mesh in groundModel.Meshes)
            {
                mesh.Material = groundMaterial;
            }

            var ground = new GameObject();

            ground.AddComponent(new ModelComponent()
            {
                Model = groundModel
            });

            var groundShape = new ModelShape(groundModel);

            ground.AddComponent(new PhysicsComponent()
            {
                RigidBody = new RigidBody(groundShape.Shape)
                {
                    IsStatic          = true,
                    AllowDeactivation = false
                }
            });

            var player      = new GameObject();
            var playerShape = new ModelShape(playerModel);

            var pineTree = new GameObject();

            pineTree.AddComponent(new ModelComponent()
            {
                Model = pineTreeModel
            });
            pineTree.Transform.Position = new Vector3(80, 73, 100);
            pineTree.Transform.Scale    = new Vector3(4, 4, 4);

            player.AddComponent(new ModelComponent
            {
                Model = playerModel
            });
            player.AddComponent(new PhysicsComponent
            {
                RigidBody = new RigidBody(new BoxShape(1f, 0.5f, 1))
                {
                    AffectedByGravity = true,
                    AllowDeactivation = false
                }
            });
            player.AddComponent(new MonkeyComponent());

            player.Transform.Position = new Vector3(145.0654f, 100.74099f, 173.0334f);
            player.Transform.Rotation = new Vector3(215.9143f, 0f, 0f);

            var camera = WindowManager.Scene.ActiveCamera;

            camera.AddComponent(new FollowCameraComponent()
            {
                FollowGameObject = player
            });

            /*
             * camera.AddComponent(new FreelookCameraComponent()
             * {
             *  FollowGameObject = player
             * });
             *
             * camera.Transform.Position = new Vector3(154.0654f, 80.74099f, 185.0334f);
             * camera.Transform.Rotation = new Vector3(224.9143f, -2.557277f, 0f);
             */
        }
コード例 #2
0
 public override void Import(FullModelData data, string path, bool createModels, Func <string, Sections.Object3D> parentFinder, IOptionReceiver options)
 => GltfImporter.Import(data, path, createModels, parentFinder, options);