void Update() { state = GamePad.GetState(playerIndex); button_a.UpdateValue(state.Buttons.A); Vector3 movement = new Vector3(state.ThumbSticks.Left.X, 0f, state.ThumbSticks.Left.Y); if (movement != Vector3.zero) { rb.velocity = movement * moveSpeed; targetRotation = Quaternion.LookRotation(movement); render_object.transform.rotation = targetRotation; } else { rb.velocity = Vector3.zero; } anim.SetFloat("speed", movement.magnitude); if (can_go_thrown_vines && button_a.state == KEY_STATE.KEY_DOWN) { going_throw_vines = true; diggingDirection.y = -diggingDirection.y; } if (going_throw_vines) { transform.position += diggingDirection * go_up_speed * Time.deltaTime; if (Mathf.Sign(diggingDirection.y) == 1f) { if (transform.position.y >= go_up_distance) { transform.position = new Vector3(transform.position.x, go_up_distance, transform.position.z); going_throw_vines = false; } } else if (Mathf.Sign(diggingDirection.y) == -1f) { if (transform.position.y <= go_down_distance) { transform.position = new Vector3(transform.position.x, go_down_distance, transform.position.z); going_throw_vines = false; } } } }
void Update() { state = GamePad.GetState(playerIndex); button_a.UpdateValue(state.Buttons.A); Vector3 movement = new Vector3(state.ThumbSticks.Left.X, 0f, state.ThumbSticks.Left.Y); if (movement != Vector3.zero) { rb.velocity = movement * moveSpeed; if (!audioSource.isPlaying) { audioSource.Play(); } targetRotation = Quaternion.LookRotation(movement); render_object.transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.time); } else { rb.velocity = Vector3.zero; } anim.SetFloat("speed", movement.magnitude); if ((Input.GetKeyDown(KeyCode.Z) || button_a.state == KEY_STATE.KEY_DOWN)) { if (isInTree) { currTree.MakeTreeFall(); } else if (can_dig) { monticulo.SetActive(!monticulo.activeSelf); digging = true; underground = !underground; audioSource.clip = underground ? digSFX : walkSFX; } } if (digging) { transform.position += diggingDirection * diggingSpeed * Time.deltaTime; //Is diggin' down if (Mathf.Sign(diggingDirection.y) == -1f) { if (transform.position.y <= dig_down_distance) { transform.position = new Vector3(transform.position.x, dig_down_distance, transform.position.z); digging = false; } } //Is diggin' up else if (Mathf.Sign(diggingDirection.y) == 1f) { if (transform.position.y >= dig_up_distance) { transform.position = new Vector3(transform.position.x, dig_up_distance, transform.position.z); digging = false; } } } if (!rock_vibration && (Time.time - time_vibration) >= vibrate_rock_time) { GamePad.SetVibration(playerIndex, 0.0f, 0f); rock_vibration = true; } }