예제 #1
0
    public override void _Ready()
    {
        base._Ready();

        var vr = ARVRServer.FindInterface("OpenVR");

        if (vr != null && vr.Initialize())
        {
            GetViewport().Arvr = true;
            GetViewport().Hdr  = false;

            OS.VsyncEnabled            = false;
            Engine.IterationsPerSecond = 90;
        }

        LeftController     = GetNode <Controller>("./ARVROrigin/LeftController");
        RightController    = GetNode <Controller>("./ARVROrigin/RightController");
        MatchTileStream    = GetNode <MatchTileStream>("MatchTileStream");
        TileMatchTimer     = GetNode <Timer>("TileMatchTimer");
        TileMatchCountdown = GetNode <TileMatchCountdown>("TileMatchCountdown");
        ScoreBoard         = GetNode <ScoreBoard>("ScoreBoard");
        StartMenu          = GetNode <Menu>("StartMenu");
        GameOverMenu       = GetNode <GameOverMenu>("GameOverMenu");

        MatchSuccessSound = GetNode <AudioStreamPlayer3D>("MatchTileStream/MatchSuccessSound");
        MatchFailSound    = GetNode <AudioStreamPlayer3D>("MatchTileStream/MatchFailSound");
        NextLevelSound    = GetNode <AudioStreamPlayer3D>("MatchTileStream/NextLevelSound");
    }
예제 #2
0
    public override void _Ready()
    {
        VisualServer.SetDefaultClearColor(Color.Color8(0, 0, 0, 255));

        AddChild(ARVROrigin            = new ARVROrigin());
        ARVROrigin.AddChild(ARVRCamera = new ARVRCamera()
        {
            Current = true,
        });
        ARVROrigin.AddChild(LeftController = new ARVRController()
        {
            ControllerId = 1,
        });
        LeftController.AddChild(GD.Load <PackedScene>("res://OQ_Toolkit/OQ_ARVRController/models3d/OculusQuestTouchController_Left.gltf").Instance());
        ARVROrigin.AddChild(RightController = new ARVRController()
        {
            ControllerId = 2,
        });
        RightController.AddChild(GD.Load <PackedScene>("res://OQ_Toolkit/OQ_ARVRController/models3d/OculusQuestTouchController_Right.gltf").Instance());

        AddChild(new WorldEnvironment()
        {
            Environment = new Godot.Environment()
            {
                BackgroundColor = Color.Color8(0, 0, 0, 255),
                BackgroundMode  = Godot.Environment.BGMode.Color,
            },
        });

        AddChild(DosScreen = new DosScreen()
        {
            GlobalTransform = new Transform(Basis.Identity, new Vector3(0, 0, -2)),
        });

        DosScreen.Screen.WriteLine("Platform detected: " + OS.GetName());

        switch (OS.GetName())
        {
        case "Android":
            Path          = "/storage/emulated/0/";
            ARVRInterface = ARVRServer.FindInterface("OVRMobile");
            State         = PermissionsGranted ? LoadingState.DOWNLOAD_SHAREWARE : LoadingState.ASK_PERMISSION;
            break;

        default:
            ARVRInterface = ARVRServer.FindInterface("OpenVR");
            State         = LoadingState.DOWNLOAD_SHAREWARE;
            break;
        }

        if (ARVRInterface != null && ARVRInterface.Initialize())
        {
            GetViewport().Arvr = true;
        }

        LeftController.Connect("button_pressed", this, nameof(ButtonPressed));
        RightController.Connect("button_pressed", this, nameof(ButtonPressed));
    }
예제 #3
0
    public override void _Ready()
    {
        VisualServer.SetDefaultClearColor(BackgroundColor);
        AddChild(new WorldEnvironment()
        {
            Environment = new Godot.Environment()
            {
                BackgroundColor = BackgroundColor,
                BackgroundMode  = Godot.Environment.BGMode.Color,
            },
        });
        AddChild(ARVROrigin            = new ARVROrigin());
        ARVROrigin.AddChild(ARVRCamera = new ARVRCamera()
        {
            Current = true,
        });
        ARVROrigin.AddChild(LeftController = new ARVRController()
        {
            ControllerId = 1,
        });
        ARVROrigin.AddChild(RightController = new ARVRController()
        {
            ControllerId = 2,
        });
        LeftController.AddChild((Spatial)GD.Load <PackedScene>("res://OQ_Toolkit/OQ_ARVRController/models3d/OculusQuestTouchController_Left.gltf").Instance());
        RightController.AddChild((Spatial)GD.Load <PackedScene>("res://OQ_Toolkit/OQ_ARVRController/models3d/OculusQuestTouchController_Right.gltf").Instance());

        ARVRInterface = ARVRServer.FindInterface(OS.GetName().Equals("Android") ? "OVRMobile" : "OpenVR");

        if (ARVRInterface != null && ARVRInterface.Initialize())
        {
            GetViewport().Arvr = true;
        }

        AddChild(VirtualScreen = new VirtualScreen()
        {
            Transform = new Transform(Basis.Identity, new Vector3(0f, VirtualScreen.Height / 2f, -1f)),
        });

        AddChild(Line3D = new Line3D()
        {
            Color = Color.Color8(255, 0, 0, 255),
        });

        AddChild(Cube);
    }
예제 #4
0
    public override void _Ready()
    {
        base._Ready();

        var vr = ARVRServer.FindInterface("OpenVR");

        if (vr != null && vr.Initialize())
        {
            GetViewport().Arvr = true;

            OS.VsyncEnabled            = false;
            Engine.IterationsPerSecond = 90;
        }

        Ribbon         = GetNode <Ribbon>("ARVROrigin/Ribbon");
        WaveEmitter    = GetNode <WaveEmitter>("WaveEmitter");
        GameStartTimer = GetNode <Timer>("GameStartTimer");
        //GameStartTimer.Start();
    }