纳金网
标题:
按住跳跃键就能更高更远!!!
[打印本页]
作者:
745951224
时间:
2017-9-27 16:27
标题:
按住跳跃键就能更高更远!!!
一直以来,按下跳跃键就是普通的跳是否已经腻了?
我也想要飞的更高,飞的更高~~~————来自作者模型的独白
SO,今天奉上如何处理不同的跳跃:
这是普通的跳跃:即按一下跳跃键
2017-9-27 16:11 上传
下载附件
(234.18 KB)
这是长按跳跃:即按住跳跃键不放
2017-9-27 16:11 上传
下载附件
(394.67 KB)
其实呢,短跳跃和长跳跃的用户输入区别只在于是否长按了跳跃键而已,所以我添加了一个计时器(0.5秒),用来判断用户按跳跃键按了多久。当然你们会说,按下跳跃键的一瞬间也会有时间,所以为了容错我定了个容错时间0.1秒,也就是说,当跳跃键被按下0.1秒后开始计算跳跃增量,增加上限是0.5秒。通过增加阻力来增加滞空时间,这样可以跳得更远,重复施加新的力可以跳得更高。当增量时间结束后将阻力修正。
当然,有一个问题是如果我间断的反复按下跳跃键貌似也能触发长跳跃,这个问题我给出的解决方案是检查是否处于可跳跃阶段。
if (Input.GetKey(KeyCode.Space)) {
if (tiao) {
time_tiao -= Time.deltaTime;
if (time_tiao > 0&&time_tiao<0.4f) {
GetComponent<Rigidbody> ().drag += 1;
GetComponent<Rigidbody> ().AddForce (new Vector3 (0, 30, 0));
} else {
GetComponent<Rigidbody> ().drag = 0;
}
}
if (tiaoyue > 0) {
tiao = true;
GetComponent<Rigidbody> ().AddForce (new Vector3 (0, 180, 0));
tiaoyue--;
}
} else {
tiao = false;
GetComponent<Rigidbody> ().drag = 0;
}
好了,今天就到这里了,大家有好的意见可以私信或回复。
图片3.png
(105.54 KB, 下载次数: 254)
2017-9-27 16:15 上传
点击文件名下载附件
代码
欢迎光临 纳金网 (http://go.narkii.com/club/)
Powered by Discuz! X2.5