Exemple #1
0
		}//Start
		
		// Update is called once per frame
		void Update () 
		{

			string listen;

			//Handle Joysticks removed.
			if (Input.GetJoystickNames().Length < IPInstance.NumControllers)
			{
				//Controller disconnected
				if (On_EVENT_Disconnect != null) On_EVENT_Disconnect();
			}
			//DONE Handle Joysticks removed.

			UpdateControllers();

			//handle controller mode
			switch(ControllerMode)
			{
				
			case ControllerModeEnum.DISPLAY :
				break;
			case ControllerModeEnum.DISPLAY2 :
				break;	
			case ControllerModeEnum.SET :
				CurrentlyProgramming = true;
				switch(SetMode)
				{
				case SetModeEnum.ENTER:
					SetMode = SetModeEnum.WAIT;
					//("enter mode");
					break;
				case SetModeEnum.WAIT:
					//check to see if key has been released.

					if (!ContinueWait(ic))
					{
						ScanForLocked();
						SetMode = SetModeEnum.LISTEN;
					}
					//Debug.Log("Wait mode");
					break;

				case SetModeEnum.WAIT_DPAD:
					//check to see if key has been released.
					
					if (!ContinueWait_dPad(ic))
					{
						SetMode = SetModeEnum.LISTEN;
					}
					//Debug.Log("Wait dPad mode");
					break;

				case SetModeEnum.LISTEN:
					switch(ListenMode)
					{	
					case ControllerVarEnum.ThumbLeft_x:
						//Debug.Log("Thumbx listen");
						listen = SetModeGetString(ic);
						//Debug.Log("ThumbLeft_x: " + listen);
						if(listen != "")
						{
							ControllerArray[ic].set_sThumbLeft_x(listen);
							ListenMode = ControllerVarEnum.ThumbLeft_y;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ThumbLeft_y:
						listen = SetModeGetString(ic);
						//Debug.Log("ThumbLeft_y");
						if(listen != "")
						{
							ControllerArray[ic].set_sThumbLeft_y(listen);
							ListenMode = ControllerVarEnum.ThumbLeft;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ThumbLeft:
						listen = SetModeGetString(ic);
						//Debug.Log("ThumbLeft");
						if(listen != "")
						{
							ControllerArray[ic].set_sThumbLeft(listen);
							ListenMode = ControllerVarEnum.ThumbRight_x;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ThumbRight_x:
						listen = SetModeGetString(ic);
						//Debug.Log("ThumbRight_x");
						if(listen != "")
						{
							ControllerArray[ic].set_sThumbRight_x(listen);
							ListenMode = ControllerVarEnum.ThumbRight_y;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ThumbRight_y:
						listen = SetModeGetString(ic);
						//Debug.Log("ThumbRight_y");
						if(listen != "")
						{
							ControllerArray[ic].set_sThumbRight_y(listen);
							ListenMode = ControllerVarEnum.ThumbRight;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ThumbRight:
						listen = SetModeGetString(ic);
						//Debug.Log("ThumbRight");
						if(listen != "")
						{
							ControllerArray[ic].set_sThumbRight(listen);
							ListenMode = ControllerVarEnum.ShoulderTop_left;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					
					case ControllerVarEnum.ShoulderTop_left:
						listen = SetModeGetString(ic);
						//Debug.Log("ShoulderTop_left");
						if(listen != "")
						{
							ControllerArray[ic].set_sShoulderTop_left(listen);
							ListenMode = ControllerVarEnum.ShoulderTop_right;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ShoulderTop_right:
						listen = SetModeGetString(ic);
						//Debug.Log("ShoulderTop_right");
						if(listen != "")
						{
							ControllerArray[ic].set_sShoulderTop_right(listen);
							ListenMode = ControllerVarEnum.ShoulderBottom_left;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.ShoulderBottom_left:
						//CheckNegFlags(ic);
						listen = SetModeGetStringTrigger(ic);
						//Debug.Log("ShoulderBottom_left");
						if(listen != "")
						{
							ControllerArray[ic].set_sShoulderBottom_left(listen);
							ListenMode = ControllerVarEnum.ShoulderBottom_right;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
							
						}
						break;

					case ControllerVarEnum.ShoulderBottom_right:
						//CheckNegFlags(ic);
						listen = SetModeGetStringTrigger(ic);
						//Debug.Log("ShoulderBottom_right");
						if(listen != "")
						{
							ControllerArray[ic].set_sShoulderBottom_right(listen);
							ListenMode = ControllerVarEnum.Interface_left;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.Interface_left:
						listen = SetModeGetString(ic);
						//Debug.Log("Interface_left");
						if(listen != "")
						{
							ControllerArray[ic].set_sInterface_left(listen);
							ListenMode = ControllerVarEnum.Interface_right;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;
						
					case ControllerVarEnum.Interface_right:
						listen = SetModeGetString(ic);
						//Debug.Log("Interface_right");
						if(listen != "")
						{
							ControllerArray[ic].set_sInterface_right(listen);
							ListenMode = ControllerVarEnum.dpad_up;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;

					

					case ControllerVarEnum.dpad_up:
						listen = SetModeGetString(ic);
						//Debug.Log("dpad_up");
						if(listen == "")
						{
							listen = SetModeGetStringDPadAxis(ic); //because down can produce negative values
							if(listen != "")
							{
								//Check for a negative axis, if it's negative, the dPad is inverted.
								ControllerArray[ic].dPadInverted = true;
							}
						}
						if(listen != "")
						{
							if( listen[3] == 'A')
							{
								ControllerArray[ic].dPadIsAxis = true; //Need to flag that the dPad is using axis control
							}
							else
							{
								ControllerArray[ic].dPadIsAxis = false; //revert back, in case user made a mistake
							}
							ControllerArray[ic].set_sdpad_up(listen);
							ListenMode = ControllerVarEnum.dpad_down;
							SetMode = SetModeEnum.WAIT_DPAD;
							if (SingleSetMode) EndProgramming();
						}
						break;
					case ControllerVarEnum.dpad_down:
						listen = SetModeGetString(ic);
						if(listen == "")
						{
							listen = SetModeGetStringDPadAxis(ic); //because down can produce negative values
						}
						//Debug.Log("dpad_down");
						if(listen != "")
						{
							if( listen[3] == 'A')
							{
								ControllerArray[ic].dPadIsAxis = true; //Need to flag that the dPad is using axis control
							}
							else
							{
								ControllerArray[ic].dPadIsAxis = false; //revert back, in case user made a mistake
							}
							ControllerArray[ic].set_sdpad_down(listen);
							ListenMode = ControllerVarEnum.dpad_left;
							SetMode = SetModeEnum.WAIT_DPAD;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.dpad_left:
						listen = SetModeGetString(ic);
						if(listen == "")
						{
							listen = SetModeGetStringDPadAxis(ic); //because left can produce negative values
						}
						//Debug.Log("dpad_left");
						if(listen != "")
						{
							if( listen[3] == 'A')
							{
								ControllerArray[ic].dPadIsAxis = true; //Need to flag that the dPad is using axis control
							}
							else
							{
								ControllerArray[ic].dPadIsAxis = false; //revert back, in case user made a mistake
							}
							ControllerArray[ic].set_sdpad_left(listen);
							ListenMode = ControllerVarEnum.dpad_right;
							SetMode = SetModeEnum.WAIT_DPAD;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.dpad_right:
						listen = SetModeGetString(ic);
						//Debug.Log("dpad_right");
						if(listen != "")
						{
							if( listen[3] == 'A')
							{
								ControllerArray[ic].dPadIsAxis = true; //Need to flag that the dPad is using axis control
							}
							else
							{
								ControllerArray[ic].dPadIsAxis = false; //revert back, in case user made a mistake
							}
							ControllerArray[ic].set_sdpad_right(listen);
							ListenMode = ControllerVarEnum.FP_top;
							SetMode = SetModeEnum.WAIT_DPAD;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.FP_top:
						listen = SetModeGetString(ic);
						//Debug.Log("FP_top");
						if(listen != "")
						{
							ControllerArray[ic].set_sFP_top(listen);
							ListenMode = ControllerVarEnum.FP_bottom;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.FP_bottom:
						listen = SetModeGetString(ic);
						//Debug.Log("FP_bottom");
						if(listen != "")
						{
							ControllerArray[ic].set_sFP_bottom(listen);
							ListenMode = ControllerVarEnum.FP_left;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.FP_left:
						listen = SetModeGetString(ic);
						//Debug.Log("FP_left");
						if(listen != "")
						{
							ControllerArray[ic].set_sFP_left(listen);
							ListenMode = ControllerVarEnum.FP_right;
							SetMode = SetModeEnum.WAIT;
							if (SingleSetMode) EndProgramming();
						}
						break;

					case ControllerVarEnum.FP_right:
						listen = SetModeGetString(ic);
						//Debug.Log("FP_right");
						if(listen != "")
						{
							ControllerArray[ic].set_sFP_right(listen);
							//ListenMode = ControllerVarEnum.Interface_left;
							SetMode = SetModeEnum.WAIT;
							EndProgramming();
						}
						break;

					}//switch(ListenMode)
					break;
				case SetModeEnum.EXIT:
					break;
				}//switch(SetMode)
				
				
				break;
			}//switch(ControllerMode)

		}//Update
Exemple #2
0
		}//Update

		private void EndProgramming()
		{
			//Finish the controller programming cycle
			ControllerMode = ControllerModeEnum.OFF;
			SetMode = SetModeEnum.ENTER;
			ListenMode = ControllerVarEnum.ThumbLeft_x;
			//check for full range triggers
			if(ControllerArray[ic].get_ShoulderBottom_left() < -0.99f)
			{
				ControllerArray[ic].FullRangeTriggers = true;
			}
			SaveController(ic);
			//LoadController(ic);
			CurrentlyProgramming = false;
			SingleSetMode = false;
			ic = 0;
		}//EndProgramming