我試圖讓玩家在蹲下移動時變慢。
private float moveSpeed = 5f;
private float crouchSpeed = 0.2f;
private float runSpeed = 8.5f;
private void PlayerMovement()
{
move = controls.Player.Movement.ReadValue<Vector2>();
movement = (move.y * transform.forward) (move.x * transform.right);
controller.Move(movement * moveSpeed * Time.deltaTime);
if (isRunning)
{
run = controls.Player.Run.ReadValue<float>();
Vector3 running = (move.y * transform.forward) (move.x * transform.right);
controller.Move(running * runSpeed * Time.deltaTime);
}
if (crouching)
{
isRunning = false;
transform.localScale = new Vector3(transform.localScale.x, crouchYScale, transform.localScale.z);
movement = (move.y * transform.forward) (move.x * transform.right);
controller.Move(movement * crouchSpeed * Time.deltaTime);
}
else
{
transform.localScale = new Vector3(transform.localScale.x, startYScale, transform.localScale.z);
movement = (move.y * transform.forward) (move.x * transform.right);
controller.Move(movement * moveSpeed * Time.deltaTime);
}
}
但是,即使玩家蹲下,它仍然與步行速度相同。這是為什么?
uj5u.com熱心網友回復:
設定速度的一個好方法是洗掉相同方法的重復項。這樣你就可以定義一個臨時的速度變數,并通過不同的條件來最終確定主速度。在這種方法中,您不再需要重新定義Character.Move,問題將得到解決。
var currentSpeed = moveSpeed;
if (isRunning)
{
currentSpeed = runSpeed;
run = controls.Player.Run.ReadValue<float>();
}
if (crouching)
{
currentSpeed = crouchSpeed;
isRunning = false;
transform.localScale = new Vector3(transform.localScale.x, crouchYScale, transform.localScale.z);
}
else // if move
{
transform.localScale = new Vector3(transform.localScale.x, startYScale, transform.localScale.z);
}
controller.Move(movement * currentSpeed * Time.deltaTime); // without duplication and select true speed in last
uj5u.com熱心網友回復:
private void PlayerMovement()
{
// stuff
controller.Move(movement * moveSpeed * Time.deltaTime);
// stuff
if (crouching)
{
// stuff
controller.Move(movement * crouchSpeed * Time.deltaTime);
}
你做正常的運動,然后你也根據你的跑步/蹲伏狀態做運動。
考慮改為將 currentSpeed 設定為等于您的步行速度,查看您的案例并根據需要設定 currentSpeed,然后在設定速度后只有一個實際 .Move() 的位置。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/483832.html
標籤:unity3d
下一篇:統一的黑洞物理(2D)
