- 7
- 0
- 约4.49千字
- 约 7页
- 2016-12-15 发布于江苏
- 举报
在写第三人称控制的时候,一开始在电脑测试是用WASD控制角色
更多精彩请关注【狗刨学习网】
后来需要发布到手机上,于是就加了一个摇杆
键盘控制角色的代码已经写好了,角色八方向移动
如果按照传统的大众思路来控制的话,是达不到我想要的效果的,传统控制思路代码如下:
??
1 //当摇杆处于移动状态时,角色开始奔跑
2? ?void OnJoystickMove(MovingJoystick move)
3? ?{
4? ???if (move.joystickName != EasyJoystick)
5? ???{
6? ?? ? return;
7? ???}
8? ???//获取摇杆偏移量
9? ???float joyPositionX = move.joystickAxis.x;
10? ???float joyPositionY = move.joystickAxis.y;
11? ???if (joyPositionY != 0 || joyPositionX != 0)
12? ???{
13? ?? ? //设置角色的朝向(朝向当前坐标+摇杆偏移量)
14? ?? ???transform.LookAt(new Vector3(transform.position.x + joyPositionX, transform.position.y, transform.position.z + joyPositionY));
15? ?? ? //移动玩家的位置(按朝向位置移动)
16? ?? ? transform.Translate(Vector3.forward * Time.deltaTime * 7.5F);
17? ?? ? //播放奔跑动画
18? ?? ? animation.CrossFade(Run);
19? ???}
20? ?}
复制代码
如果要按照摇杆传统思路控制角色,在重新写控制角色代码的话非常麻烦,所以我就通过计算摇杆旋转角度来判断当前摇杆处于哪个方向
ok,现在我们开始来敲代码
首先,我们来调试观察一下摇杆的x轴、y轴的返回值
??//移动摇杆中??
2? ???void OnJoystickMove(MovingJoystick move)
3? ???{
4? ?? ?? ?Debug.Log(move.joystickAxis.x + , + move.joystickAxis.y);
5? ???}
复制代码
调试结果为:
? ? 左:x = -1,y = 0;顺时针旋转X逐渐变大,Y逐渐变大
? ? 上:x = 0,y = 1;顺时针旋转X逐渐变大,Y逐渐变小
? ? 右:x = 1,y = 0;顺时针旋转X逐渐变小,Y逐渐变小
? ? 下:x = 0,y = -1;顺时针旋转X逐渐变小,Y逐渐变大
我们把摇杆底图看成是两个半圆,上半圆和下半圆
那么:
? ? X轴移动到左边时,X = -1;X轴移动到右边时:X = 1;X轴从左转到右旋转了180度
? ? Y轴移动到左边时,Y = 0;Y轴移动到右边时:Y = 0;Y轴从左转到右旋转了180度
你如果直接看我的调试结果肯定有点晕,建议边调试边参考我的调试结果,这样才能理解
如果我们要计算当前摇杆在左上角旋转的度数怎么计算呢?
读过小学的人都可以做,只是看见摇杆返回的-1和0脑袋被绕迷糊了,我也一样,弄了好半天才弄好
? ? 当摇杆移动到左时,为0度、360度(因为360度为一圈,已经绕回远点了)
? ? 当摇杆移动到上时,为90度
? ? 当摇杆移动到右时,为180度
? ? 当摇杆移动到下时,为270度
既然知道是多少度这就好办多了
得出公式:
? ? 当X轴在右时为1,也就是X轴为180度,则:1 * 90 + 90 = 180
? ? 当前X轴旋转角度为:X轴返回值 * 90度 + 90度
你以为这就完事了吗?还高兴得太早,用这个公式计算只能得到上半圆的旋转角度
现在我们要获取下半圆旋转角度,然后用上半圆旋转角度 + 下半圆旋转角度 = 当前旋转角度
当摇杆移动到下半圆时我们怎么计算旋转角度呢?
我们已经知道Y轴在左边为0,在右边为0,在下边为-1,继续用计算X轴的公式
? ? Y左:0 * 90 + 90 = 90
? ? Y上:1 * 90 + 90 = 180
? ? Y下:-1 * 90 + 90 = 0
? ? Y右:0 * 90 + 90 = 90
? ? X左:-1 * 90 + 90 = 0
? ? X上:0 * 90 + 90 = 90
? ? X下:0 * 90 + 90 = 90
? ? X右:1
您可能关注的文档
- 四级作文专项解析.doc
- 五大桩坐标推算知识点.doc
- 与发动机有关的英语单词.doc
- 园林管理系统.doc
- 直线和圆锥曲线解析.doc
- Unit4 SectionB知识点.doc
- Unit7,Period4知识点.doc
- 保护渣专用词汇英中对照知识点.doc
- 产生任意波形知识点.doc
- 国际贸易实务试卷A卷0912.doc
- 03-2 2025年度民主生活会征求意见座谈会主持词.docx
- 03-1 2025年度民主生活会主持讲话提纲.docx
- 02-1 会前学习-《县以上党和国家机关党员领导干部民主生活会若干规定》相关要求.docx
- 在2025年度民主生活会上的总结讲话三篇.docx
- 在2025年度民主生活会上的总结讲话三篇 (3).docx
- 市委宣传部2025年度民主生活会查摆问题整改方案两篇.docx
- 在市行政审批和政务信息管理局机关2026年全体干部政绩观教育大会上的党课讲稿.docx
- X市应急管理局2026年度安全生产监督检查计划.docx
- 2025年度民主生活会领导班子对照检查材料(五个带头)三篇.docx
- 2025年度民主生活会“五个带头”个人对照检查材料三篇.docx
最近下载
- 金航联执业药师继续教育《氯吡格雷临床使用药学解读》习题答案.docx VIP
- 如何进行神话故事的阅读教学——从盗取天火的“普罗米修斯”说起-来源:小学教学参考(上旬)(第2020003期)-广西教育学院.pdf VIP
- 道路危险货物运输从业人员从业资格考试大纲培训教学大纲和培训教学计划.docx VIP
- 道路危险货物运输从业人员从业资格考试大纲、培训教学大纲和培训教学计划.doc VIP
- 蜜雪冰城店加盟合同范本.docx VIP
- 老年人多重用药评估与管理中国专家共识(2024)解读PPT课件.pptx VIP
- 城市立体化社会治安防控体系建设工作方案.docx VIP
- 老年人多重用药评估与管理中国专家共识(2024)解读PPT课件.pptx VIP
- 2024年天津市成人高考专升本高等语文真题及答案.docx VIP
- 道路工程监理实施细则.docx
原创力文档

文档评论(0)