//public static event PlayerMove OnPlayerMoved;// public static void PlayerStopped(AbstractPlayerController player) { if (OnPlayerStopped != null) { OnPlayerStopped(player, Vector3.zero); } }
public static void PlayerMoving(AbstractPlayerController player, Vector3 movement) { if (OnPlayerMoving != null) { OnPlayerMoving(player, movement); } }
public void ReleaseController(AbstractPlayerController controller) { if (null == controller) { return; } AvailableControllers.Enqueue(controller); }
private void GameController_OnPlayerMoving(AbstractPlayerController playerController, Vector3 movement) { if (Time.time > followTime) { offset = originalOffset + (moveOffset * movement.normalized); speed = originalSpeed; } }
protected virtual void Awake() { player = GetComponent <AbstractPlayerController>(); if (mainCamera == null) { if (Camera.main != null) { mainCamera = Camera.main.transform; } else { Debug.LogWarning("Warning: No main camera found. Player needs a Camera tagged \"MainCamera\", for camera-relative controls."); } } #if (UNITY_IOS || UNITY_ANDROID) useTouchControl = useTouchControl || !Debug.isDebugBuild; #endif }
protected override void Awake() { if (player == null) { player = FindObjectOfType <AbstractPlayerController>(); } if (player != null) { base.reference = player.transform; } else { Debug.LogError("No player found. CameraController needs a player reference!"); } base.Awake(); originalOffset = base.offset; originalSpeed = base.speed; GameManager.OnPlayerMoving += GameController_OnPlayerMoving; GameManager.OnPlayerStopped += GameController_OnPlayerStopped; base.useLateUpdate = true; }
private void GameController_OnPlayerStopped(AbstractPlayerController playerController, Vector3 movement) { speed = idleSpeed; offset = originalOffset; }