private IEnumerator waitingRoom(MPlayerController mp, Action onTimeoutDone) { var loc = GetRandomLocationXZ(); loc.y = UnityEngine.Random.Range(300f, 10000f); var wRoom = Instantiate(respawnRoomPrefab); wRoom.transform.position = loc; Bounds wBounds = wRoom.GetComponent <Collider>().bounds; var placePl = wBounds.center; mp.GetComponent <Rigidbody>().MovePosition(placePl); mp.thirdCam.teleportToPlayer(); yield return(new WaitForSeconds(timeOutTime)); Destroy(wRoom.gameObject); if (onTimeoutDone != null) { onTimeoutDone(); } }
/// <summary> /// Обработка ввода /// </summary> /// <param name="parDeltaTime">Время кадра обработки устройств в миллисекундах</param> protected override void InputHandle(double parDeltaTime) { if (_mainPlayerRef == null) { if (PlayerBindsControllerWatchdog != null) { _mainPlayerRef = PlayerBindsControllerWatchdog.PlayerControllers.First( parX => parX.MPlayerRef == App.PlayersManager.Player1); _devicesManagerOpenTk.OnDeviceAdded += AssignToMainPlayer; _devicesManagerOpenTk.OnBeforeDeviceRemoval += DeassignFromAllPlayers; AssignAllToMainPlayer(); } } if (_mainPlayerRef != null) { _devicesManagerOpenTk.DevicesCheckPolling(); _devicesManagerOpenTk.UpdateDevicesStates(); } }
public override void getGiven(MPlayerController mp) { Debug.Log("weapon get given"); mp.acquireWeapon(weaponIndex); }
/// <summary> /// Определить и назначить стандартное управление для игрока /// </summary> /// <param name="parMPlayerController">Контроллер игрока</param> /// <param name="parAvailableDevice">Доступное физическое устройство OpenTK</param> protected void DefineAndPerformStandardAssignToPlayer(MPlayerController parMPlayerController, MDeviceOpenTk parAvailableDevice) { void ConditionalAxisBindToDevice(EGameActionAxis parGameActionAxis, MDeviceOpenTk parDeviceOpenTk, string parAxisId) { if (parMPlayerController.MPlayerRef.GameActionAxises.ContainsKey(parGameActionAxis)) { parMPlayerController.MGameActionAxisBindToDevices.Add( new MGameActionAxisBindToDevice(parDeviceOpenTk, parAxisId, parMPlayerController.MPlayerRef.GameActionAxises[parGameActionAxis])); } } void ConditionalButtonBindToDevice(EGameActionButton parGameActionButton, MDeviceOpenTk parDeviceOpenTk, string parButtonId) { if (parMPlayerController.MPlayerRef.GameActionButtons.ContainsKey(parGameActionButton)) { parMPlayerController.MGameActionButtonBindToDevices.Add( new MGameActionButtonBindToDevice(parDeviceOpenTk, parButtonId, parMPlayerController.MPlayerRef.GameActionButtons[parGameActionButton])); } } if (parAvailableDevice.IsDeviceKeyboardAndMouse()) { ConditionalButtonBindToDevice(EGameActionButton.Button_A, parAvailableDevice, ((int)Key.Space).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Button_B, parAvailableDevice, ((int)Key.Escape).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Button_X, parAvailableDevice, ((int)Key.E).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Button_Y, parAvailableDevice, ((int)Key.Q).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Up, parAvailableDevice, ((int)Key.W).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Down, parAvailableDevice, ((int)Key.S).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Left, parAvailableDevice, ((int)Key.A).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Right, parAvailableDevice, ((int)Key.D).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Up, parAvailableDevice, ((int)Key.Up).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Down, parAvailableDevice, ((int)Key.Down).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Left, parAvailableDevice, ((int)Key.Left).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Right, parAvailableDevice, ((int)Key.Right).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Button_Start, parAvailableDevice, ((int)Key.Enter).ToString()); ConditionalButtonBindToDevice(EGameActionButton.Button_Bumper_Shift, parAvailableDevice, ((int)Key.ShiftLeft).ToString()); } else { ConditionalAxisBindToDevice(EGameActionAxis.LeftCursorX, parAvailableDevice, MDeviceOpenTk.THUMBSTICK_LEFT_X_ID); ConditionalAxisBindToDevice(EGameActionAxis.LeftCursorY, parAvailableDevice, MDeviceOpenTk.THUMBSTICK_LEFT_Y_ID); ConditionalButtonBindToDevice(EGameActionButton.Button_A, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_BOTTOM_1_ID); ConditionalButtonBindToDevice(EGameActionButton.Button_B, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_BOTTOM_2_ID); ConditionalButtonBindToDevice(EGameActionButton.Button_X, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_TOP_1_ID); ConditionalButtonBindToDevice(EGameActionButton.Button_Y, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_TOP_2_ID); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Up, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_UP_ID); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Down, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_DOWN_ID); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Left, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_LEFT_ID); ConditionalButtonBindToDevice(EGameActionButton.Dpad_Menu_Right, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_DPAD_RIGHT_ID); ConditionalButtonBindToDevice(EGameActionButton.Button_Start, parAvailableDevice, MDeviceOpenTk.GAMEPAD_BUTTON_CENTER_1_ID); } }
//private void OnTriggerEnter(Collider other) { // //if(!available) { return; } // MPlayerController mp = other.GetComponent<MPlayerController>(); // if (mp) { // GetComponentInParent<PickupSpawner>().OnPlayerPickedup(mp, this); // } // //Destroy(gameObject); //} public abstract void getGiven(MPlayerController mp);
public void placeInWaitingRoom(MPlayerController mp, Action OnTimeoutDone) { StartCoroutine(waitingRoom(mp, OnTimeoutDone)); }