コード例 #1
0
    // Use this for initialization
    void Start()
    {
        float height = 2.0f * Camera.main.orthographicSize;

        screenWidthInPoints = height * Camera.main.aspect;

        spawner                = GetComponent <SpawnHandler>();
        playerAudio            = GetComponent <AudioSource>();
        car                    = GetComponent <CarControls>();
        fly                    = GetComponent <FlyControls>();
        gameState              = GetComponent <GameState>();
        playerRenderer         = GetComponent <SpriteRenderer>();
        playerAnimator         = GetComponent <Animator>();
        heartIndicatorRenderer = heartIndicator.GetComponent <SpriteRenderer>();

        // Start on ground
        vehicleState    = VehicleStateEnum.Ground;
        currentControls = car;
    }
コード例 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="control"></param>
        public override void Load(Control control)
        {
            base.Load(control);

            camera = new PerspectiveCamera(45, control.Width / (float)control.Height, 0.1f, 15000);
            this.camera.Position.Z = 1000;

            controls = new FlyControls(control, camera);
            controls.MovementSpeed = 1000.0f;
            controls.RollSpeed     = (float)Math.PI / 10;

            scene            = new Scene();
            scene.Fog        = new Fog(Color.Black, 1, 15000);
            scene.AutoUpdate = false;

            var light1 = new PointLight((Color)colorConvertor.ConvertFromString("#ff2200"));

            light1.Position = new Vector3(0, 0, 0);
            scene.Add(light1);

            var light2 = new DirectionalLight(Color.White);

            light2.Position = new Vector3(0, 0, 1).Normalize();
            scene.Add(light2);

            var geometry = new List <GeometryEx>();

            geometry.Add(new GeometryEx()
            {
                distance = 50, geometry = new IcosahedronGeometry(100, 4)
            });
            geometry.Add(new GeometryEx()
            {
                distance = 300, geometry = new IcosahedronGeometry(100, 3)
            });
            geometry.Add(new GeometryEx()
            {
                distance = 1000, geometry = new IcosahedronGeometry(100, 2)
            });
            geometry.Add(new GeometryEx()
            {
                distance = 2000, geometry = new IcosahedronGeometry(100, 1)
            });
            geometry.Add(new GeometryEx()
            {
                distance = 8000, geometry = new IcosahedronGeometry(100, 4)
            });

            var material = new MeshLambertMaterial()
            {
                Color = Color.White, Wireframe = true
            };

            for (var j = 0; j < 1000; j++)
            {
                var lod = new LOD();

                for (var i = 0; i < geometry.Count; i++)
                {
                    var mesh = new Mesh(geometry[i].geometry, material);
                    mesh.Scale = new Vector3(1.5f, 1.5f, 1.5f);
                    mesh.UpdateMatrix();
                    mesh.MatrixAutoUpdate = false;
                    lod.AddLevel(mesh, geometry[i].distance);
                }

                lod.Position.X = 10000 * (0.5f - Mat.Random());
                lod.Position.Y = 7500 * (0.5f - Mat.Random());
                lod.Position.Z = 10000 * (0.5f - Mat.Random());
                lod.UpdateMatrix();
                lod.MatrixAutoUpdate = false;
                scene.Add(lod);
            }

            renderer.SortObjects = false;
        }