gpt4 book ai didi

c# - 从 Input.GetAxis() 读取时,transform.Translate 似乎加速和减速对象

转载 作者:太空宇宙 更新时间:2023-11-03 23:09:00 24 4
gpt4 key购买 nike

我最近开始使用 Unity,我有一个非常简单的脚本,如下所示,它可以左右移动 Sprite 。

using UnityEngine;
using System.Collections;

public class PlayerController : MonoBehaviour {

// Speed set to 5 in Inspector
public int speed;

// Update is called once per frame
void Update () {
var x = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
var y = Input.GetAxis("Vertical") * Time.deltaTime * speed;

transform.Translate (x, y, 0);
}
}

问题是,当我按下箭头键时, Sprite 似乎会加速一秒或更短时间,而当我松开按键时,它似乎会减速一秒或更短时间。我不希望它这样做,我只希望它始终保持相同的速度,没有任何加速或减速。

你能告诉我我可能做错了什么吗?

最佳答案

我是通过查看 API 弄明白的。

Input.GetAxis 似乎应用了平滑过滤器。当我看到 Input.GetAxisRaw 函数时,我发现了它或推断出它,在它的描述中它说

Returns the value of the virtual axis identified by axisName with no smoothing filtering applied.

这让我相信 Input.GetAxis 函数应用了平滑。

所以函数现在读取

void Update () {
var x = Input.GetAxisRaw("Horizontal") * Time.deltaTime * speed;
var y = Input.GetAxisRaw("Vertical") * Time.deltaTime * speed;

transform.Translate (x, y, 0);
}

谢谢大家的宝贵时间

问候克鲁兹

关于c# - 从 Input.GetAxis() 读取时,transform.Translate 似乎加速和减速对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40139978/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com