/// <summary> /// Called on the frame when this <see cref="MonoBehaviour"/> is enabled, /// before any of the Update methods are called. /// </summary> private void Start() { characterController = GetComponent <CharacterController>(); movementType = GameSettings.PlayerMovementType; Instance = this; }
private void StartFalling() { if (is_falling == false) { fall.StartFalling((last_movement_speed + extra_movement_speed) * speed_boost); ResetMovements(rotate.GetOnIce(), true, false); current_movement_type = PlayerMovementType.None; is_falling = true; } }
private void Start() { movementType = PlayerMovementType.Stationary; lastMovementType = PlayerMovementType.Stationary; lowProfileMovement = true; movementDirection = Vector3.zero; movementTimer = 0; direction = (int)DirectionState.DOWN; canMove = true; MessageCenter.Instance.RegisterListener(MessageType.AbilityStatusChanged, HandleAbilityStatusChanged); MessageCenter.Instance.RegisterListener(MessageType.PauseChanged, HandlePauseChanged); // Temp state = State.Normal; npcsInRange = new List <GameObject>(); xScale = transform.localScale.x; }
private void Start() { movementType = PlayerMovementType.Stationary; lastMovementType = PlayerMovementType.Stationary; lowProfileMovement = true; movementDirection = Vector3.zero; movementTimer = 0; direction = (int)DirectionState.DOWN; canMove = true; MessageCenter.Instance.RegisterListener (MessageType.AbilityStatusChanged, HandleAbilityStatusChanged); MessageCenter.Instance.RegisterListener (MessageType.PauseChanged, HandlePauseChanged); // Temp state = State.Normal; npcsInRange = new List<GameObject>(); xScale = transform.localScale.x; }
private void CheckPlatformType(Transform platform) { if ((platform.tag == "Snow") && (current_movement_type != PlayerMovementType.Snow)) { current_movement_type = PlayerMovementType.Snow; last_movement_speed = movement_speed; extra_movement_speed = 0; ResetMovements(false, true, true); animations.SetAnimation(PlayerAnimations.Stand); } else if ((platform.tag == "Ice") && (current_movement_type != PlayerMovementType.Ice)) { current_movement_type = PlayerMovementType.Ice; last_movement_speed = ice_movement_speed; ResetMovements(true, false, true); animations.SetAnimation(PlayerAnimations.Ice); } else if ((platform.tag == "Reverse") && (current_movement_type != PlayerMovementType.Reverse)) { current_movement_type = PlayerMovementType.Reverse; last_movement_speed = ice_movement_speed; ResetMovements(true, false, true); animations.SetAnimation(PlayerAnimations.Ice); } else if ((platform.tag == "Straight") && (current_movement_type != PlayerMovementType.Straight)) { current_movement_type = PlayerMovementType.Straight; last_movement_speed = ice_movement_speed; ResetMovements(true, false, true); animations.SetAnimation(PlayerAnimations.Ice); } else if (platform.tag == "Water") { current_movement_type = PlayerMovementType.None; extra_movement_speed = 0; ResetMovements(false, true, true); respawner.KillPlayer(gameObject, PlayerAnimations.Stand, false); SpawnPool general_pool = PoolManager.Pools[CurrentLevel.GetGeneralPoolName()]; general_pool.Spawn(water_effect, transform.position, new Quaternion(90, 0, 0, 0)); } }
/// <summary> /// Called every frame. /// </summary> private void Update() { // If our settings have changed, let's update our player data. if (GameSettings.PlayerMovementType != movementType) { movementType = GameSettings.PlayerMovementType; } DPadInput.Update(); if (isCarryingObject && objectBeingCarried != null) { Vector3 carryDestination = GetCarryObjectDestination(); objectBeingCarried.transform.position = Vector3.Lerp(objectBeingCarried.transform.position, carryDestination, Time.deltaTime * pickupMovementSmoothening); float rightJoystickHorizontalAxis = Input.GetAxis("RightJoystickHorizontal"); objectBeingCarried.transform.Rotate(Vector3.up * pickupRotationSpeed * Time.deltaTime * -rightJoystickHorizontalAxis, Space.World); // If we aren't pressing the pickup key, let's bail! // If we are pressing it at this point, we want to drop the item that we are holding. if (!DPadInput.Down) { return; } isCarryingObject = false; Rigidbody objectBeingCarriedRigidbody = objectBeingCarried.GetComponent <Rigidbody>(); objectBeingCarriedRigidbody.isKinematic = false; objectBeingCarriedRigidbody.velocity = vrCamera.transform.forward * objectDropThrowVelocity; // Reset the colour of the material just in case it was changed anywhere else. objectBeingCarried.GetComponent <MeshRenderer>().material.color = Color.white; objectBeingCarried = null; } else { // We only want to pickup an item when we press up on the Dpad. When it is NOT down, // let's bail out of this method. if (!DPadInput.Up) { return; } RaycastHit hit; if (!Physics.Raycast(vrCamera.transform.position, vrCamera.transform.forward, out hit)) { return; } // If the object we hit has no rigidbody or isn't on the pickup layer then there is nothing to do. if (hit.collider.attachedRigidbody == null || hit.transform.gameObject.layer != LayerMask.NameToLayer("Pickup")) { return; } // If the object we hit is out of range let's not pick it up. float distanceFromHit = Vector3.Distance(transform.position, hit.point); if (distanceFromHit > pickupRadius) { return; } isCarryingObject = true; objectBeingCarried = hit.transform.gameObject; hit.collider.attachedRigidbody.isKinematic = true; } }
private void UpdateMovement() { if (Input.anyKey) { keyboardControl = true; } if (Input.GetAxis("LSX") != 0 || Input.GetAxis("LSY") != 0) { keyboardControl = false; } Vector2 velocity = Vector2.zero; if (keyboardControl) { // Keyboard support :( if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.RightArrow)) { velocity.x = (Input.GetKey(KeyCode.LeftArrow)) ? -1f : 1f; } if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)) { velocity.y = (Input.GetKey(KeyCode.UpArrow)) ? 1f : -1f; } } else { velocity = new Vector2(Input.GetAxis("LSX"), Input.GetAxis("LSY")); } float speed = (lowProfileMovement) ? MaxLowProfileSpeed : MaxHighProfileSpeed; Vector2 zero = Vector2.zero; velocity = velocity * speed * Time.deltaTime; if (velocity.magnitude <= 0.01f) { velocity = zero; } // update the DirectionState direction = updateState(Input.GetAxis("LSX"), Input.GetAxis("LSY")); // Update movement type if (velocity == zero) { movementType = PlayerMovementType.Stationary; } else { movementType = (lowProfileMovement) ? PlayerMovementType.LowProfile : PlayerMovementType.HighProfile; } // Handle dashing if (velocity != zero) { /*if(Input.GetButtonDown("Y") && movementTimer <= 0f) * { * movementDirection = velocity.normalized * 30f; * movementTimer = 0.2f; * }*/ } if (movementTimer > 0f) { rigidbody2D.velocity = movementDirection; movementType = PlayerMovementType.VeryHighProfile; movementTimer -= Time.deltaTime; } else { rigidbody2D.velocity = velocity; } if (velocity.x < 0f) { transform.localScale = new Vector3(-xScale, transform.localScale.y, transform.localScale.z); } else if (velocity.x > 0f) { transform.localScale = new Vector3(xScale, transform.localScale.y, transform.localScale.z); } if (movementType != lastMovementType) { MessageCenter.Instance.Broadcast(new PlayerMovementTypeChangedMessage(movementType)); } if (Input.GetButtonDown("Back")) { lowProfileMovement = !lowProfileMovement; } // Temp if (Input.GetAxis("LT") > 0.2f && npcsInRange.Count > 0) { PlayerGrabbedNPCsMessage message = new PlayerGrabbedNPCsMessage(npcsInRange); foreach (GameObject npc in npcsInRange) { Vector3 offset = new Vector3(Random.Range(-0.5f, 0.5f), Random.Range(-0.5f, 0.5f)); npc.transform.position = transform.position + offset; } MessageCenter.Instance.Broadcast(message); //MessageCenter.Instance.Broadcast(new CameraZoomInMessage()); state = State.Eating; percentage = 0.5f; qteButton = Random.Range(0, 3); rigidbody2D.velocity = Vector2.zero; } }
public PlayerMovementTypeChangedMessage(PlayerMovementType type) : base(MessageType.PlayerMovementTypeChanged) { NewMovementType = type; }
private void UpdateMovement() { if (Input.anyKey) keyboardControl = true; if( Input.GetAxis("LSX") != 0 || Input.GetAxis("LSY") != 0 ) keyboardControl = false; Vector2 velocity = Vector2.zero; if (keyboardControl) { // Keyboard support :( if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.RightArrow)) velocity.x = (Input.GetKey(KeyCode.LeftArrow)) ? -1f : 1f; if (Input.GetKey(KeyCode.UpArrow) || Input.GetKey(KeyCode.DownArrow)) velocity.y = (Input.GetKey(KeyCode.UpArrow)) ? 1f : -1f; } else velocity = new Vector2(Input.GetAxis("LSX"), Input.GetAxis("LSY")); float speed = (lowProfileMovement) ? MaxLowProfileSpeed : MaxHighProfileSpeed; Vector2 zero = Vector2.zero; velocity = velocity * speed * Time.deltaTime; if (velocity.magnitude <= 0.01f) velocity = zero; // update the DirectionState direction = updateState (Input.GetAxis ("LSX"), Input.GetAxis ("LSY")); // Update movement type if (velocity == zero) movementType = PlayerMovementType.Stationary; else movementType = (lowProfileMovement) ? PlayerMovementType.LowProfile : PlayerMovementType.HighProfile; // Handle dashing if(velocity != zero) { /*if(Input.GetButtonDown("Y") && movementTimer <= 0f) { movementDirection = velocity.normalized * 30f; movementTimer = 0.2f; }*/ } if(movementTimer > 0f) { rigidbody2D.velocity = movementDirection; movementType = PlayerMovementType.VeryHighProfile; movementTimer -= Time.deltaTime; } else rigidbody2D.velocity = velocity; if (velocity.x < 0f) transform.localScale = new Vector3(-xScale, transform.localScale.y, transform.localScale.z); else if (velocity.x > 0f) transform.localScale = new Vector3(xScale, transform.localScale.y, transform.localScale.z); if (movementType != lastMovementType) MessageCenter.Instance.Broadcast(new PlayerMovementTypeChangedMessage(movementType)); if (Input.GetButtonDown("Back")) lowProfileMovement = !lowProfileMovement; // Temp if(Input.GetAxis("LT") > 0.2f && npcsInRange.Count > 0) { PlayerGrabbedNPCsMessage message = new PlayerGrabbedNPCsMessage(npcsInRange); foreach (GameObject npc in npcsInRange) { Vector3 offset = new Vector3(Random.Range(-0.5f, 0.5f), Random.Range(-0.5f, 0.5f)); npc.transform.position = transform.position + offset; } MessageCenter.Instance.Broadcast(message); //MessageCenter.Instance.Broadcast(new CameraZoomInMessage()); state = State.Eating; percentage = 0.5f; qteButton = Random.Range(0, 3); rigidbody2D.velocity = Vector2.zero; } }