c# - 有没有办法使用 c# 从 Minecraft 统一重新创建班次系统
问题描述
我想知道如何重新创建轮班系统。我想知道的是这个(移动让你走到一个立方体/块的末端,你移动得更慢。一般来说就是这样。
解决方案
改变速度:检测到 shift 键被按下,如果按下改变你的速度变量的值,我会使用一个乘数:
if (Input.GetKeyDown("LeftShift"))
sneak = 0.5f;
else
sneak = 1.0f;
speed = baseSpeed * sneak;
检测边缘:按下 shift 时使用播放器的向下光线投射。(https://docs.unity3d.com/ScriptReference/Physics.Raycast.html)。将 maxDistance 设置为相当短,如果您脚下有地面,它将返回 true,您什么也不做。如果你的脚下没有任何东西,它将返回 false。这里的棘手之处在于,您不能只将角色的速度设置为 0,因为您会被永久封锁。要解决这个问题,您可能需要多个光线投射并让它们一起工作以检测边缘的方向,并且只抵消会使您从边缘跌落的运动方向。我不确定执行此操作的最佳方法,但您很可能需要光线投射,因此请查看它们。
您可能对这些教程感兴趣: https ://www.youtube.com/watch?v=h66IN1Pndd0&list=PLVsTSlfj0qsWEJ-5eMtXsYp03Y9yF1dEn
推荐阅读
- javascript - 标题不粘在屏幕顶部
- c++ - 为什么我不能引用指向实例化对象函数的指针?
- python - 尝试在 python 中打开文件以读取(带有特殊字符)时出错
- ruby - 如何使用邮件宝石通过 ruby 发送邮件?
- python - 'RandomOverSampler' 对象没有属性 '_validate_data'
- javascript - Lit-element Uncaught SyntaxError:JSON.parse 中位置 0 处 JSON 中的意外标记 r(
) - mongoose - 即使字符串匹配,猫鼬匹配验证器也会给出验证错误
- javascript - Not able to add todos to database
- python - 尝试使用 sklearn OrdinalEncoder 对字符串数据进行整数编码时,所有类别都返回 0?
- libvlc - 如何在 VLC(桌面应用程序和 Unity)中播放更高分辨率的视频(4k 及更高)?