- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
UnityD游戏开发之自由视角下的角色控制.doc
Unity3D游戏开发之自由视角下的角色控制
欢迎来到unity学习、unity培训、unity企业培训教育专区,这里有很多U3D资源、U3D培训视频、U3D教程、U3D常见问题、U3D项目源码,我们致力于打造业内unity3d培训、学习第一品牌。
今天呢,我们继续来探讨Unity3D角色控制的内容,今天博主将解决在上一篇文章中没有解决的问题,即自由视角下的角色控制。如图是博主非常喜欢的《古剑奇谭》游戏截图,在这款游戏中就使用了博主今天要讲解的自由视角,所谓自由视角是指玩家可以按照自身坐标系向着四个不同的方向移动,当玩家按下鼠标右键时,可以绕Y
在开始今天的内容前,首先让我们来学习下Unity3D中较为重要的一部分知识,理解这些知识是我们开始学习今天内容的基础,文章出处【狗刨学习网】。
1、Input.GetAxis():该方法用于在Unity3D中根据坐标轴名称返回虚拟坐标系中的值,通常情况下,使用控制器和键盘输入时此值范围在-1到1之间。这段话怎么理解呢?我们来看下面这段脚本:
using UnityEngine;
using System.Collections;
public class example : MonoBehaviour {
//水平速度
public float HorizontalSpeed = 2.0F;
//垂直速度
public float VerticalSpeed = 2.0F;
void Update()
{
//水平方向
float h = HorizontalSpeed * Input.GetAxis(Mouse X);
//垂直方向
float v = VerticalSpeed * Input.GetAxis(Mouse Y);
//旋转
transform.Rotate(v, h, 0);
}
}
? ? 这段脚本呢是根据鼠标的位置来旋转物体从而实现对物体的观察,从这段脚本中我们可以看出,通过获取输入轴的办法,我们可以获得鼠标移动的方向进而实现对于 物体的旋转控制。在Unity3D中我们可以通过Edit-Project Setting-Input来查看项目中的坐标轴名称:
2、欧拉角eulerAngles:该值是Vector3类型的值,x、y、z分别代表绕x轴旋转x度,绕y轴旋转y度,绕z轴旋转z度。因此,该值最为直观的形式是可以允许我们直接以一个三维向量的形式来修改一个物体的角度,例如下面的脚本:
float mY = 5.0;
void Update ()
{
mY += Input.GetAxis(Horizontal);
transform.eulerAngles =new Vector3(0,mY, 0);
}
如果你已经理解了上面的话,那么不出意外的,这段脚本会如你所愿的,按照鼠标在水平方向上移动的方向绕Y轴旋转。通常情况下,我们不会单独设置欧拉角其 中一个轴,例如eulerAngles.x = 10,因为这将导致偏移和不希望的旋转。当设置它们一个新的值时,要同时设置全部。好在我们可以通过Quaternion.Euler()方法将一个 Vector3类型的值转化为一个四元数,进而通过修改Transform.Rotation来实现相同的目的。
? ??
3、插值:所谓插值是指在离散数据的基础上补插连续函数,使得这条连续曲线通过全部给定的离散数据点。插值是离散函数逼近的重要方法,利用它可通过函数在有限个点处的取值状况,估算出函数在其他点处的近似值。在某些情况下,如果我们希望过程中处理得较为平滑,此时我们就可以使用插值的方法来实现对中间过程的模拟。在Unity3D中我们可以使用两种插值方法,即线性插值Lerp,球形插值SLerp。我们来看下面的脚本: 插值的方法很简单,只要我们给出初始和结束的状态、时间就可以了,大家可以自己看API。
? ? ?好了,有了这三部分的基础,我们就可以开始今天的内容了,今天的脚本分为两个部分,第一部分是角色控制的部分,主要负责的角色在场景中的移动、转身和动画 处理。第二部分是相机控制的部分,主要涉及相机旋转、相机缩放的相关内容。下面,我们分别来讲这两个部分,场景依然是博主自己在做的小游戏:本次的主角呢,是博主非常喜欢的角色谢沧行,好了,我们回到今天的内容里吧!在第一部分,主要的是完成角色向各个方向的转身,这里博主定义四个方向(其实八个方向是一样的!),脚本如下:
这里定义四个方向,是按照逆时针方向转的,相邻的两个方向间相差90度,所以我们只需要将当前的角度和目标角度相减就可以转到目标角度的方向(其实这是以 前写的代码,现在回头再看,直接用欧拉角似乎更为简单啊,呵呵)。这里主
您可能关注的文档
- SL核酸的生物合成DNA的复制.ppt
- SNL风电法兰低温冲击韧性的工艺研究.doc
- Solidstatelasermaterials.ppt
- SO的性质课件.ppt
- SQL_Server_基础教程_报表服务集成服务分析服务XML技术开发CLR数据库对象.ppt
- STAPC“热重差热”同步热分析仪.doc
- STCFKS单片机的基本结构.ppt
- STEMI的再灌注策略.ppt
- Superpave设计方法.ppt
- S_程序设计.ppt
- 2025至2030年中国商标标牌行业投资前景及策略咨询报告.docx
- 2025至2030年中国喷墨打印头行业投资前景及策略咨询研究报告.docx
- 2025至2030年中国四端线绕电阻器行业投资前景及策略咨询研究报告.docx
- 2025至2030年中国四门冷藏展示柜行业投资前景及策略咨询研究报告.docx
- 2025至2030年中国安全芯片市场供需格局及投资规划研究报告.docx
- 2025至2030年中国松土器市场竞争格局及投资战略规划报告.docx
- 2025至2030年中国电商SAAS市场调查研究及行业投资潜力预测报告.docx
- 2025至2030年中国电竞椅行业市场全景评估及发展战略研究报告.docx
- 2025至2030年中国能源期货行业市场调查研究及投资前景预测报告.docx
- 2025至2030年中国钟表零件市场运行态势及行业发展前景预测报告.docx
文档评论(0)