官术网_书友最值得收藏!

Creating the device detector

The first function we'll create is one that will detect whether we actually have a gamepad plugged in. Unity inherently gives us a way to make this very easy.

Adding the variables needed

First, we'll add variables that we'll use in the detection and identification functions. Add these to the top of your script, just after the class declaration:

bool isControllerConnected = false;
public string Controller = "";

This Boolean will be used in later functions to determine whether there is a gamepad connected. The string will be used to hold the name of the gamepad connected.

Creating the detection function

Our next step is to add the DetectController function. This will use the Boolean we created earlier and check whether there is a gamepad connected. Add the following code to your script:

void DetectController()
{
  try
  {
    if(Input.GetJoystickNames()[0] != null)
    {
      isControllerConnected = true;
      IdentifyController();
    }
  }
  catch
  {
    isControllerConnected = false;
  }
}

This function uses the GetJoystickNames function of the input, which gets and returns an array of strings, which consists of the names of the connected gamepads. We use this to set our Boolean to true or false; true meaning there's a device connected and false meaning that the game couldn't detect a device. The reason we use a try-catch expression is because if there is no gamepad connected Input.GetJoystickNames() will give you an IndexOutOfRangeException error.

Creating the identifier function

Our last step in creating the device detector will be to add the ability to identify the gamepad connected. Add this function to the script, just below the DetectController function:

void IdentifyController()
{
  Controller = Input.GetJoystickNames()[0];
}

As you can see, we are assigning the name of the gamepad connected to our Controller variable. To use this function, call it within the DetectController function, in the if statement, where we set isControllerConnected to true.

主站蜘蛛池模板: 新干县| 荣成市| 汾阳市| 汾阳市| 融水| 江陵县| 枣强县| 龙岩市| 雷山县| 镇安县| 永清县| 余江县| 常德市| 攀枝花市| 会泽县| 乃东县| 遵义市| 宾阳县| 平和县| 栾川县| 丰顺县| 济源市| 樟树市| 广德县| 临猗县| 青龙| 隆德县| 黄陵县| 蒙阴县| 铁岭市| 巩留县| 驻马店市| 郯城县| 乳源| 囊谦县| 浮梁县| 高雄县| 沅江市| 永德县| 龙泉市| 越西县|