Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
角色移动,加速C#Unity_C#_Unity3d_Acceleration - Fatal编程技术网

角色移动,加速C#Unity

角色移动,加速C#Unity,c#,unity3d,acceleration,C#,Unity3d,Acceleration,大家好,这里的新手 自上而下的塞尔达风格的游戏 我想弄清楚如何让我的玩家把速度提高到最大,然后把速度降低到停止 我已经使用GetRawAxis进行了移动,但是在使用此方法按下move时,我的字符以最大速度移动 private void PlayerMovement() { var playerMovement = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")).normalized * T

大家好,这里的新手

自上而下的塞尔达风格的游戏

我想弄清楚如何让我的玩家把速度提高到最大,然后把速度降低到停止

我已经使用GetRawAxis进行了移动,但是在使用此方法按下move时,我的字符以最大速度移动

private void PlayerMovement()
{
    var playerMovement = new Vector2(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")).normalized * Time.deltaTime * moveSpeed;

    transform.position = new Vector3(
        transform.position.x + playerMovement.x,
        transform.position.y + playerMovement.y,
        transform.position.z);
}

这里是一个场景,您可以在x轴上移动对象,逐渐提高速度。你也可以通过减速来做同样的事情。将速度逐渐降低一个值

float acceleration = 0.6;
float maxSpeed = 30;
float speed = 0;

void Update(){
   if(speed < maxSpeed){
      speed += acceleration * Time.deltaTime;
    }

   transform.position.x = transform.position.x + speed*Time.deltaTime;

}
浮动加速度=0.6;
浮点最大速度=30;
浮动速度=0;
无效更新(){
if(速度<最大速度){
速度+=加速度*时间增量;
}
transform.position.x=transform.position.x+速度*Time.deltaTime;
}
您可以试试

这将使用一个存储当前“速度”的向量,并将其缓慢转储

可在此处找到示例:

请提供代码和/或更多信息,而不是设置速度,您可以尝试在斗杆方向使用刚体的AddForce,并添加一些阻力,使其在没有主动施力的情况下缓慢停止。这是我当前的移动方法private void playermove(){var playerMovement=new Vector2(Input.GetAxisRaw(“水平”)、Input.GetAxisRaw(“垂直”)。归一化*Time.deltaTime*moveSpeed;transform.position=new Vector3(transform.position.x+playerMovement.x,transform.position.y+playerMovement.y,transform.position.z);}抱歉,我不知道如何使代码看起来properly@Tas7e嘿,我看到了你刚才删除的问题:我正要发布一个答案,所以这里希望它有帮助1)这只适用于X轴上的运动2)不考虑玩家输入,3)不包括减速。是的,我知道它不做任何事情,但这是po我只是给他指出了正确的方向。他可以把逻辑应用到其他场景中。