示例#1
0
    // bind each user with the wizards in the current scene
    void BindAllWizardToUser()
    {
        Debug.Log("binding wizard to user");
        int id = 0;

        totalPlayerNum = 0;
        int[] materialIdCount = new int[2] {
            0, 2
        };
        GameObject[] playerCollection = GameObject.FindGameObjectsWithTag(TagList.Player);
        foreach (GameObject player in playerCollection)
        {
            // bind input manager
            UserInputManager userCtrl = player.GetComponent <UserInputManager>();
            // assign player ID
            userCtrl.playerNum = id;
            player.name        = userDataCollection[id].Username;
            userDataCollection[id].initPosition = player.transform.position;
            if (userDataCollection[id].wizardInstance != null)
            {
                Debug.LogError("Already bind to another player");
                continue;
            }

            totalPlayerNum++;

            userDataCollection[id].wizardInstance = player;

            Destroy(player);

            Debug.Log("binding wizard" + id + " to user");

            // seperate team for default/unassigned player:
            // default: 0 & 1 in team 0, 2 & 3 in team 1;
            // unassigned: destroy the corresponding player object;
            if (userDataCollection[id].teamID >= 2)
            {
                // default: 0 & 1 in team 0, 2 & 3 in team 1;
                userDataCollection[id].teamID = id / 2;

                InstantiateWizardInstanceWithId(id);
            }
            else if (userDataCollection[id].teamID == -1)
            {
                totalPlayerNum--;
            }
            else             // already got a valid team id
            {
                InstantiateWizardInstanceWithId(id);
            }

            // Distribute material to user and wizard instance by team id
            int materialId = materialIdCount[userDataCollection[id].teamID];
            materialIdCount[userDataCollection[id].teamID]++;
            userDataCollection[id].wizardMaterial = UserMaterials[materialId];
            BindWizardMaterial(userDataCollection[id].wizardInstance, userDataCollection[id].wizardMaterial);

            id++;
        }
    }
        protected BasicGameHost(string gameName = @"")
        {
            Dependencies.Cache(this);
            name = gameName;

            threads = new[]
            {
                drawThread = new GameThread(DrawFrame, @"DrawThread")
                {
                    OnThreadStart = DrawInitialize,
                },
                updateThread = new GameThread(UpdateFrame, @"UpdateThread")
                {
                    OnThreadStart = UpdateInitialize,
                    Monitor       = { HandleGC = true }
                },
                inputThread = new InputThread(null, @"MainThread") //never gets started.
            };

            MaximumUpdateHz = GameThread.DEFAULT_ACTIVE_HZ;
            MaximumDrawHz   = (DisplayDevice.Default?.RefreshRate ?? 0) * 4;

            // Note, that RegisterCounters only has an effect for the first
            // BasicGameHost to be passed into it; i.e. the first BasicGameHost
            // to be instantiated.
            FrameStatistics.RegisterCounters(this);

            Environment.CurrentDirectory = Path.GetDirectoryName(FullPath);

            setActive(true);

            AddInternal(inputManager = new UserInputManager(this));
        }
示例#3
0
    // store into hashtable as well
    void BindAllUserData()
    {
        Debug.Log("[INIT]: Bind All User Data from scene setup");
        int playerID = 0;

        GameObject[] playerCollection = GameObject.FindGameObjectsWithTag(TagList.Player);

        if (playerCollection.Length == 0)
        {
            isBindSucceed = false;
            Debug.LogWarning("Bind fail, no controller found");
            return;
        }
        isBindSucceed = true;

        foreach (GameObject player in playerCollection)
        {
            // bind input manager
            UserInputManager userCtrl = player.GetComponent <UserInputManager>();
            // assign player ID
            userCtrl.playerNum                  = playerID;
            userDataCollection[playerID]        = new UserData();
            userDataCollection[playerID].userID = playerID;

            // bind the provided player info into User data.
            userDataCollection[playerID].Username       = Usernames[playerID];
            userDataCollection[playerID].Usercolor      = UserColors[playerID];
            userDataCollection[playerID].wizardMaterial = UserMaterials[playerID];
            playerID++;
        }
    }
示例#4
0
    bool checkUserFollowInstruction()
    {
        playerCollection = GameObject.FindGameObjectsWithTag(TagList.Player);
        if (curInstructionInput == UserInputManager.InputSource.None)
        {
            return(true);
        }
        bool returnV = true;

        for (int i = 0; i < 4; i++)
        {
            if (!StopBlinking[i])
            {
                UserInputManager Uinput = playerCollection[i].GetComponent <UserInputManager>();
                if (curInstructionInput == UserInputManager.InputSource.RBumper)
                {
                    if (playerCollection[i].GetComponent <PlayerData>().SpecialSpellID != SpellDB.AttackID.None)
                    {
                        StopBlinking[i] = Uinput.CheckInputControl(curInstructionInput);
                    }
                }
                else
                {
                    StopBlinking[i] = Uinput.CheckInputControl(curInstructionInput);
                }
            }
            returnV = returnV & StopBlinking[i];
        }
        return(returnV);
    }
示例#5
0
    IEnumerator WinEndGameEffect()
    {
        for (int i = 0; i < 2; ++i)
        {
            GameStatistic.Instance.Scores [i] = teamScores [i];
        }

        yield return(new WaitForSeconds(0.1f));

        GameObject winSEPrefab = Resources.Load(Constants.AudioFileDir + "WinningSE") as GameObject;
        GameObject winSE       = GameObject.Instantiate(winSEPrefab) as GameObject;


        GameObject[] playerCollection = GameObject.FindGameObjectsWithTag(TagList.Player);

        foreach (GameObject player in playerCollection)
        {
            GameObject winEffPrefab = Resources.Load("ArenaEffects/WinParEff") as GameObject;
            GameObject winEff       = GameObject.Instantiate(winEffPrefab,
                                                             player.transform.position, Quaternion.identity)     as GameObject;
            UserInputManager userInput = player.GetComponent <UserInputManager>();
            userInput.LockControl(UserInputManager.InputSource.AllControl, 9.0f);
        }

        yield return(new WaitForSeconds(3.0f));

        Application.LoadLevel("EndStat");
    }
示例#6
0
        public WidgetApplication(IConsoleBox console, Func <IWidget> viewFactory)
        {
            Console      = console;
            Context      = new BuildContext();
            factory      = viewFactory;
            InputManager = new UserInputManager();

            UI = new UIManager(console);

            // note:  Order on wiring up events matters!
            // we want the UI to process the events prior to
            // firing off renders
            console.KeyEvent += (s, e) =>
            {
                InputManager.OnKey(e);
                Render();
            };

            console.MouseMove       += (s, e) => Render();
            console.MouseButtonUp   += (s, e) => Render();
            console.MouseClick      += (s, e) => Render();
            console.MouseWheel      += (s, e) => Render();
            console.MouseButtonDown += (s, e) => Render();

            console.ResizeEvent += (s, e) =>
            {
                console.Clear();
                Render(true);
            };

            Context.State.Set(UserInputManager.STATE_KEY, InputManager);
        }
    public void Start()
    {
        Instance        = this;
        nameToInput     = new Dictionary <string, InputKey>();
        keyToName       = new Dictionary <KeyCode, string>();
        isButtonPressed = new List <KeyCode>();

        foreach (InputKey ik in Keys)
        {
            ik.Init();
        }

        foreach (InputKey key in Keys)
        {
            if (nameToInput.ContainsKey(key.InputName))
            {
                GameUtils.Utils.WarningMessage("Input key '" + key.InputName + "' already been used!");
                continue;
            }//if
            List <KeyCode> keyList = new List <KeyCode>(key.positiveKeys);
            keyList.AddRange(key.negativeKeys);
            foreach (KeyCode k in keyList)
            {
                if (keyToName.ContainsKey(k))
                {
                    continue;
                }
                keyToName.Add(k, key.InputName);
            }
            nameToInput.Add(key.InputName, key);
        } //foreach
    }     //Start
示例#8
0
 private void load(UserInputManager inputManager)
 {
     this.inputManager = inputManager;
     animation         = new AnimatedSprite();
     animation.AddAnimation(new Animation("down")
     {
         new Frame(125f, "Resources\\Graphics\\World\\Player\\down.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\down_1.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\down.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\down_2.png")
     });
     animation.AddAnimation(new Animation("up")
     {
         new Frame(125f, "Resources\\Graphics\\World\\Player\\up.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\up_1.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\up.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\up_2.png")
     });
     animation.AddAnimation(new Animation("left")
     {
         new Frame(125f, "Resources\\Graphics\\World\\Player\\left.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\left_1.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\left.png"),
         new Frame(125f, "Resources\\Graphics\\World\\Player\\left_2.png")
     });
     animation.AddAnimation(new Animation("right")
     {
         new Frame(125f, "Resources\\Graphics\\World\\Player\\left.png")
         {
             Mirrored = (true, false)
         },
示例#9
0
 public void UpdateAllTarget()
 {
     done = false;
     allTargets.Clear();
     UserData[] udatas = UserInfoManager.UserDataCollection;
     foreach (UserData ud in udatas)
     {
         if (ud.wizardInstance)
         {
             allTargets.Add(ud.wizardInstance.transform);
             targets.Add(ud.wizardInstance.transform);
             UserInputManager inputManager = ud.wizardInstance.GetComponent <UserInputManager>();
             inputManager.LockControl(UserInputManager.InputSource.AllControl, 13.0f);
         }
     }
     camera = GetComponent <Camera>();
     Debug.Log("CONTROL LOCKED FOR CAMERA ZOOM");
     Invoke("ZoomIn", 2.1f);
     Invoke("ZoomOut", 4);
     Invoke("ZoomIn", 5);
     Invoke("ZoomOut", 7);
     Invoke("ZoomIn", 8);
     Invoke("ZoomOut", 10);
     Invoke("ZoomIn", 11);
     Invoke("ZoomDone", 13);
 }
示例#10
0
        protected override IWidget Create(ButtonState state, BuildContext context)
        {
            var input = UserInputManager.From(context.State);

            state.OnEnter = OnClick;

            var decorated = Decoration != null?Decoration(state, Child) : Child;

            var evw = new EventWidget(decorated)
            {
                Events = new AreaEventHandler()
                {
                    OnMouseClick = (ev) =>
                    {
                        if (state.IsEnabled)
                        {
                            input.Focus(state);
                            OnClick?.Invoke(new ButtonEvent()
                            {
                                MouseButtonEvent = ev
                            });
                        }
                    },
                    OnMouseHoverChange = (m, s) =>
                    {
                        state.IsChanged = true;
                        state.IsHovered = s;
                    },
                }
            };

            return(evw);
        }
示例#11
0
        private void load(OsuColour colours, APIAccess api, UserInputManager inputManager)
        {
            this.inputManager = inputManager;
            this.colours      = colours;

            api?.Register(this);
        }
示例#12
0
        protected override TextInputState CreateState(StateManager manager)
        {
            var man   = UserInputManager.From(manager);
            var input = new TextInputState();

            man.Inputs.Add(input);
            return(input);
        }
示例#13
0
 void unlockCtrl(UserInputManager.InputSource ctrl)
 {
     foreach (GameObject player in playerCollection)
     {
         UserInputManager Uinput = player.GetComponent <UserInputManager>();
         Uinput.UnlockControl(ctrl);
     }
 }
示例#14
0
        public void ShouldRecoginzeInputArgument(string[] args, bool expectedResult)
        {
            var userInputManager = new UserInputManager();

            var evalResult = userInputManager.LogFileWasProvided(args);

            Assert.Equal(expectedResult, evalResult);
        }
示例#15
0
        public void ShouldNoticeThatLogFileDoesNotExists()
        {
            var testFilePath = $"{Path.GetTempPath()}\\testFileNonExistent.txt";

            var userInputManager = new UserInputManager();

            var evalResult = userInputManager.LogFileExists(testFilePath);

            Assert.False(evalResult);
        }
示例#16
0
        protected override ButtonState CreateState(StateManager manager)
        {
            var button = new ButtonState();

            var input = UserInputManager.From(manager);

            input.Inputs.Add(button);

            return(button);
        }
示例#17
0
    void Start()
    {
        // mapping input events
        inputManager = GetComponent <UserInputManager> ();
//		inputManager.OnPressLBumper += HandleLBumper;
//		inputManager.OnPressRBumper += HandleRBumper;
//		inputManager.OnPressButton += HandleButton;
        animator = GetComponentInChildren <Animator> ();
//		attackMeans = GetComponent<WizardAttackMeans> ();
    }
示例#18
0
    /* ------------------------------------------------------------------------------ */


    // Use this for initialization
    void Start()
    {
        _circleCollider = GetComponent <CircleCollider2D>();
        _damagable      = GetComponent <DamagableSpaceship>();
        _weapon         = GetComponentInChildren <Weapon>();
        _keyboard       = UserInputManager.Instance;

        _animator  = GetComponentInChildren <Animator>();
        _rigidBody = GetComponent <Rigidbody2D>();
        Reset();
    }//Start
示例#19
0
 private void triggerRandom(UserInputManager input)
 {
     if (input.CurrentState.Keyboard.ShiftPressed)
     {
         carousel.SelectPreviousRandom();
     }
     else
     {
         carousel.SelectNextRandom();
     }
 }
示例#20
0
        private static RouletteStrategyTester CreateServices()
        {
            ConsoleLogger logger = new ConsoleLogger();
            ConsoleReader reader = new ConsoleReader();

            UserInputManager  userInputManager  = new UserInputManager(logger, reader);
            StatisticsManager statisticsManager = new StatisticsManager();
            Visualizer        visualizer        = new Visualizer(logger);

            return(new RouletteStrategyTester(visualizer, userInputManager, statisticsManager));
        }
示例#21
0
 private void load(UserInputManager input, OsuConfigManager config)
 {
     this.input      = input;
     parallaxEnabled = config.GetBindable <bool>(OsuSetting.MenuParallax);
     parallaxEnabled.ValueChanged += delegate
     {
         if (!parallaxEnabled)
         {
             content.MoveTo(Vector2.Zero, firstUpdate ? 0 : 1000, Easing.OutQuint);
             content.Scale = new Vector2(1 + ParallaxAmount);
         }
     };
 }
示例#22
0
        private void load(OsuColour colours, OsuGame osu, UserInputManager inputManager)
        {
            this.inputManager = inputManager;

            sortTabs.AccentColour = colours.GreenLight;

            if (osu != null)
            {
                ruleset.BindTo(osu.Ruleset);
            }
            ruleset.ValueChanged += val => FilterChanged?.Invoke(CreateCriteria());
            ruleset.TriggerChange();
        }
示例#23
0
    private void InitUserInputHandler()
    {
        if (instance == null)
        {
            instance = this;
        }
        else if (instance != this)
        {
            Destroy(gameObject);
        }

        DontDestroyOnLoad(gameObject);
    }
示例#24
0
        static void Main(string[] args)
        {
            List <string> commands = new List <string>();

            List <Rover> roverList = new List <Rover>();

            UserInputManager uim = new UserInputManager();

            int[] topRightCorner;

            while (true)
            {
                topRightCorner = uim.GetTopRightCoords();

                if (topRightCorner[0] != 0 && topRightCorner[1] != 0)
                {
                    break;
                }
                Console.WriteLine("User input error, need 2 positive integers seperated by space, they can't be both zero");
            }

            while (true)
            {
                Rover rv = uim.GetRover();

                if (rv != null)
                {
                    roverList.append(rv);
                    command = uim.GetCommand()
                              if (string.IsNullOrEmpty(command))
                    {
                        break;
                    }
                }
                else
                {
                    Console.WriteLine("User input error, need 2 positive integers followed by any heading seperated by space, for example, '2 3 N'");
                }
            }
            int counter = 0;

            foreach (rover in roverList)
            {
                rover.ExecuteCommand(commands[counter]);
                rover.Output();
                counter++;
            }

            // Initialise a rover
            Rover rv = new Rover(1, 2, Heading.N);
        }
示例#25
0
        /// <summary>
        /// Registers resources that classes will depend on
        /// </summary>
        protected override async Task RegisterResources(IProgress <double> progress)
        {
            ReloadApiClient();

            await base.RegisterResources(progress).ConfigureAwait(false);

            RegisterSingleInstance <ITheaterApplicationHost>(this);

            MediaFilters = new MediaFilters(HttpClient, Logger);
            RegisterSingleInstance(MediaFilters);

            ThemeManager = new ThemeManager(() => PresentationManager, Logger);
            RegisterSingleInstance(ThemeManager);

            PresentationManager = new TheaterApplicationWindow(Logger, ThemeManager, ApiClient, () => SessionManager, TheaterConfigurationManager);
            RegisterSingleInstance(PresentationManager);

            RegisterSingleInstance(ApplicationPaths);

            RegisterSingleInstance <ITheaterConfigurationManager>(TheaterConfigurationManager);

            var hiddenWindow = new AppHiddenWIndow();

            ImageManager = new ImageManager(ApiClient, ApplicationPaths, TheaterConfigurationManager);
            RegisterSingleInstance(ImageManager);

            NavigationService = new NavigationService(ThemeManager, () => PlaybackManager, ApiClient, PresentationManager, TheaterConfigurationManager, () => SessionManager, this, InstallationManager, ImageManager, Logger, () => UserInputManager, ApiWebSocket, hiddenWindow);
            RegisterSingleInstance(NavigationService);

            UserInputManager = new UserInputManager(PresentationManager, NavigationService, hiddenWindow, LogManager);
            RegisterSingleInstance(UserInputManager);

            PlaybackManager = new PlaybackManager(TheaterConfigurationManager, Logger, ApiClient, NavigationService, PresentationManager);
            RegisterSingleInstance(PlaybackManager);

            CommandManager = new CommandManager(PresentationManager, PlaybackManager, NavigationService, UserInputManager, LogManager);
            RegisterSingleInstance(CommandManager);

            SessionManager = new SessionManager(NavigationService, ApiClient, Logger, ThemeManager, TheaterConfigurationManager, PlaybackManager);
            RegisterSingleInstance(SessionManager);

            ScreensaverManager = new ScreensaverManager(UserInputManager, PresentationManager, PlaybackManager, SessionManager, ApiClient, TheaterConfigurationManager, LogManager, ApiWebSocket);
            RegisterSingleInstance(ScreensaverManager);

            RegisterSingleInstance(ApiClient);

            RegisterSingleInstance <IHiddenWindow>(hiddenWindow);

            RegisterSingleInstance <IServerEvents>(ApiWebSocket);
        }
示例#26
0
        public void ShouldNoticeThatLogFileExists()
        {
            var testFilePath = $"{Path.GetTempPath()}\\testFile.txt";

            if (!File.Exists(testFilePath))
            {
                File.Create(testFilePath).Close();
            }

            var userInputManager = new UserInputManager();

            var evalResult = userInputManager.LogFileExists(testFilePath);

            Assert.True(evalResult);
        }
示例#27
0
        public void ShouldNoticeThatLogFileExistsWhenProvidingOnlyTheName()
        {
            var testFilePath = $"{Directory.GetCurrentDirectory()}\\testFileInCurrentDirectory.txt";

            if (!File.Exists(testFilePath))
            {
                File.Create(testFilePath).Close();
            }

            var userInputManager = new UserInputManager();

            var evalResult = userInputManager.LogFileExists("testFileInCurrentDirectory.txt");

            Assert.True(evalResult);
        }
示例#28
0
 private void load(APIAccess api, OsuConfigManager config, UserInputManager inputManager)
 {
     this.inputManager = inputManager;
     this.api          = api;
     Direction         = FillDirection.Vertical;
     Spacing           = new Vector2(0, 5);
     AutoSizeAxes      = Axes.Y;
     RelativeSizeAxes  = Axes.X;
     Children          = new Drawable[]
     {
         username = new OsuTextBox
         {
             PlaceholderText          = "Username",
             RelativeSizeAxes         = Axes.X,
             Text                     = api?.Username ?? string.Empty,
             TabbableContentContainer = this
         },
         password = new OsuPasswordTextBox
         {
             PlaceholderText          = "Password",
             RelativeSizeAxes         = Axes.X,
             TabbableContentContainer = this,
             OnCommit = (sender, newText) => performLogin()
         },
         new SettingsCheckbox
         {
             LabelText = "Remember username",
             Bindable  = config.GetBindable <bool>(OsuSetting.SaveUsername),
         },
         new SettingsCheckbox
         {
             LabelText = "Stay logged in",
             Bindable  = config.GetBindable <bool>(OsuSetting.SavePassword),
         },
         new OsuButton
         {
             RelativeSizeAxes = Axes.X,
             Text             = "Sign in",
             Action           = performLogin
         },
         new OsuButton
         {
             RelativeSizeAxes = Axes.X,
             Text             = "Register new account",
             //Action = registerLink
         }
     };
 }
示例#29
0
        public override void Load()
        {
            base.Load();

            Scheduler = new Scheduler();

            Resources = new ResourceStore <byte[]>();
            Resources.AddStore(new NamespacedResourceStore <byte[]>(new DllResourceStore(@"osu.Framework.dll"), @"Resources"));
            Resources.AddStore(new DllResourceStore(MainResourceFile));

            Textures = Textures = new TextureStore(new NamespacedResourceStore <byte[]>(Resources, @"Textures"));

            Audio = new AudioManager(new NamespacedResourceStore <byte[]>(Resources, @"Tracks"), new NamespacedResourceStore <byte[]>(Resources, @"Samples"));

            Shaders = new ShaderManager(new NamespacedResourceStore <byte[]>(Resources, @"Shaders"));

            Fonts = new TextureStore(new GlyphStore(Game.Resources, @"Fonts/OpenSans"))
            {
                ScaleAdjust = 1 / 137f
            };

            Add(userInputContainer = new UserInputManager()
            {
                Children = new[] {
                    new FlowContainer
                    {
                        Direction = Graphics.Containers.FlowDirection.VerticalOnly,
                        Padding   = new Vector2(10, 10),
                        Anchor    = Graphics.Anchor.BottomRight,
                        Origin    = Graphics.Anchor.BottomRight,
                        Depth     = float.MaxValue,

                        Children = new[] {
                            new FrameTimeDisplay(@"Input", host.InputMonitor),
                            new FrameTimeDisplay(@"Update", host.UpdateMonitor),
                            new FrameTimeDisplay(@"Draw", host.DrawMonitor)
                        }
                    },
                    new PerformanceOverlay()
                    {
                        Position = new Vector2(5, 5),
                        Anchor   = Graphics.Anchor.BottomRight,
                        Origin   = Graphics.Anchor.BottomRight,
                        Depth    = float.MaxValue
                    }
                }
            });
        }
示例#30
0
        private void bootstrapSceneGraph(Game game)
        {
            var root = new UserInputManager {
                Child = game
            };

            Dependencies.Cache(root);
            Dependencies.Cache(game);

            game.SetHost(this);

            root.Load(SceneGraphClock, Dependencies);

            //publish bootstrapped scene graph to all threads.
            Root = root;
        }
示例#31
0
        public void PrepareGameInstance()
        {
            // create the root object with paths to various configuraion files
            root = new Root();

            // call the various rendering functions, essentially in
            // the order they are defined
            DefineResources();
            if (!SetupRenderSystem(RenderType.Direct3D9, 1024, 768, false))
                //if (!SetupRenderSystem())
                throw new Exception();

            CreateWindow("YMFAS");
            InitializeResourceGroups();

            // Ogre allows callbacks for lots of different events.
            // For instance, frame listeners can be called at the start
            // or end of the rendering loop.
            root.FrameEnded += new FrameListener.FrameEndedHandler(OnFrameEnd);

            // initialize the input system
            IntPtr hwnd;
            root.AutoCreatedWindow.GetCustomAttribute("Window", out hwnd);
            input = new InputSystem(hwnd);
            inputMgr = new UserInputManager(input, eventMgr, (byte)PlayerId);

            // physics system
            InitializePhysics();

            // various other things
            frameTimer = new Mogre.Timer();

            // initalize the scene
            InitializeScene();

            //initialize chat manager
            chatMgr = new ChatManager(netClient.GameMode, netClient.PlayerId);
            TextRenderer.AddTextBox("frameCtr","FPS: 0",900,700,100,50, ColourValue.Green, ColourValue.White);
        }
示例#32
0
 // Use this for initialization
 void Start()
 {
     go = GameObject.Find("UserInputManager");
     print (go);
     other = (UserInputManager) go.GetComponent(typeof(UserInputManager));
 }
示例#33
0
 private void load(UserInputManager input)
 {
     this.input = input;
 }