unity3d游戏开发之史上最简单的鼠标点击控制人物走动实现.doc_第1页
unity3d游戏开发之史上最简单的鼠标点击控制人物走动实现.doc_第2页
unity3d游戏开发之史上最简单的鼠标点击控制人物走动实现.doc_第3页
unity3d游戏开发之史上最简单的鼠标点击控制人物走动实现.doc_第4页
unity3d游戏开发之史上最简单的鼠标点击控制人物走动实现.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

今天呢,我们来一起实现一个在RPG中游戏中十分常见的功能该文章出自【狗刨学习网】,通过鼠标点击屏幕来控制人物的走动。首先来说一下原理,当我们点击屏幕时,我们按照一定的方法,将屏幕上的二维坐标转化为三维坐标,然后我们从摄像机位置发射 一条经过该点的射线,则这条射线与大地平面的交点,就是我们的目标位置。那么确定了这个位置以后,我们需要做的就是让角色从原来的位置移动到这个位置,并在其间添加角色动画即可。对于角色移动的问题,如果复杂点的画我们可能要计算移动的方向向量,并针对起点和终点进行插值计算来实现,这里我们选择一种相对简单的办法,在Unity3D中,有一个LookAt()方法,该方法可以使物体发生旋转,使其z轴始终指向目标物体。再完成了旋转后,我们需要让物体沿着Z轴方向(forward)移动。这样就实现了鼠标点击控制人物走动这一功能。好了,下面我们来一起看今天的内容吧! 首先创建一个场景,我们准备一个地形Terrain和平行光Direction Light,并拖入我们事先准备好的人物模型,如图: 接下来为模型添加动画组件,并将动画的类型设置为Legacy模式,如图所示: 我们设置默认的动画为idle,接下来,我们来编写脚本代码: using UnityEngine; using System.Collections; public class PeopleControl : MonoBehaviour /目标点坐标 private Vector3 mTargetPos; void Start () void Update () /按下鼠标右键时 if(Input.GetMouseButton(1) /获取屏幕坐标 Vector3 mScreenPos=Input.mousePosition; /定义射线 Ray mRay=Camera.main.ScreenPointToRay(mScreenPos); RaycastHit mHit; /判断射线是否击中地面 if(Physics.Raycast(mRay,out mHit) if(mHit.collider.gameObject.tag=Terrain) /获取目标坐标 mTargetPos=mHit.point; /让主角面朝目标坐标并向目标移动 transform.LookAt(mTargetPos); /播放奔跑动画 transform.gameObject.GetComponent().Play(run); transform.Translate(Vector3.forward * 0.5F); /松开鼠标右键时 if(Input.GetMouseButtonUp(1) transform.gameObject.GetComponent().Play(idle); 将脚本绑定到角色上以后,我们就能看到下面的效果啦,哈哈:) 这就是今天的内容啦,当然我们还需要解决

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论