gpt4 book ai didi

c# - unity2d : Character moves in different speeds on different phones. ..(Deltatime?)

转载 作者:太空宇宙 更新时间:2023-11-03 18:55:45 25 4
gpt4 key购买 nike

所以我有这个小程序,我的播放器可以来回弹跳。他向左移动看起来像这样:

if  ((runright == false) && (birdyDead == false)) 
{
float currentposition = 0;
currentposition = transform.position.x;

Vector3 position = this.transform.position;
position.x = currentposition - movespeed;
this.transform.position = position;
lookleft = true;
}

但是我注意到,根据我调试游戏所用的手机,玩家的移动速度不同。在某些极端情况下,他只是太快了。就像无法控制的快速...我读到,也许我需要以某种方式将一些值与 time.deltatime 相乘,这会对帧率产生影响,这样无论我使用什么手机,我的播放器始终保持相同的速度。我猜我也需要对我的跳跃函数执行此操作,对吧?:

if (((Input.GetMouseButtonDown(0)) && (didjump == false) && (birdyDead == false)))
{
GetComponent<Rigidbody2D>().AddForce(new Vector2(0, jumpPower), ForceMode2D.Impulse);
didjump = true;
anim.SetBool("Jump", true);
}

你能帮我告诉我怎么做才能让我的玩家仍然以我想要的速度移动,但游戏中也有增量时间吗?谢谢:)

最佳答案

您只需乘以 movespeed * Time.deltaTime,以便使用每秒距离而不是每帧距离的速度更新位置。

关于c# - unity2d : Character moves in different speeds on different phones. ..(Deltatime?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45923564/

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