c# - 谁能帮我制作一个向特定角度旋转的脚本
问题描述
我正在开发一个统一游戏,我有一个游戏对象,我需要不断地向目标角度旋转它需要在那里走最短的路
我曾尝试使用 lerp 协同程序将其添加/减去角度,但是当我快速使用它时,它会卡在奇怪的位置
Transform target;
float speed;
//The angle to constantly rotate torwards
float yRotation = 120f;
private int dick;
void Start()
{
}
void Update()
{
if (Input.GetKeyDown(KeyCode.D))
{
if (dick < 3)
{
dick += 1;
}
else
{
dick = 1;
}
}
else if (Input.GetKeyDown(KeyCode.A))
{
if (dick >0 )
{
dick -= 1;
}
else
{
dick = 3;
}
}
if (dick == 1)
{
yRotation = 0;
}
else if (dick == 2)
{
yRotation = 120;
}
else if (dick == 3)
{
yRotation = 240;
}
如您所见,旧代码中有一些部分
我使用这种齿轮系统的原因是它不会卡在奇怪的位置,但我不知道如何不断地将它旋转到那个目标角度
解决方案
您可以尝试两件事:
在更新中,每次计算你和目标之间的方向,然后计算角度,然后使用 Quaternion.AngleAxis() 或简单的 Quaternion.RotateTowards()
您也可以简单地使用 Transform.LookAt(yourTarger.transform)
推荐阅读
- pandas - Pandas:如何拆分和读取值
- java - 如何使用 Hibernate 将 JSON 格式的字符串插入 H2 数据库?
- excel - 在 VBA Excel 中按形状对象对形状进行分组
- shell - 尝试对 ip 列表进行 nmap 扫描。它不会通过 $ 列表
- wordpress - 如何从 kirki 预设控件中设置 Kirki 排版值
- python - 如何在 Kivy 应用程序中播放媒体播放器 vlc
- python - dj-rest-auth,邮件过期时间不到一天
- javascript - 如何在 Vue 2 项目中配置函数在构建过程中不被混淆
- xcode - 错误:“xxx”需要配置文件。在签名和功能编辑器中选择一个配置文件。(在项目“yyy”的目标“xxx”中)
- angular - TypeError:无法设置未定义的属性(设置“对象”)