unity3d-小案例之角色简单漫游
2015-01-08 17:39
190 查看
准备资源
我这里从网上下载一个角色模型,里面有一组动画。有站立、奔跑、杀怪等
我们来实现角色的前后左后移动,即键盘上的WSDA键,这里因为没有行走的动画。索性就用奔跑代替了!!
暂时先不计较代码冗余的情况。因为我也是刚学习的新手。一切为了先实现效果。
using UnityEngine; using System.Collections; public class modelMove : MonoBehaviour { public float speed = 2; // Use this for initialization void Start() { } // Update is called once per frame void Update() { //保存移动前位置 Vector3 oldPosition = transform.position; if (Input.GetKey(KeyCode.W)) { transform.Translate(Vector3.forward * Time.deltaTime * speed, Space.World); animation.Play("run");//开始奔跑 } if (Input.GetKey(KeyCode.S)) { transform.Translate(Vector3.back * Time.deltaTime * speed, Space.World); animation.Play("run");//开始奔跑 } if (Input.GetKey(KeyCode.A)) { transform.Translate(Vector3.left * Time.deltaTime * speed, Space.World); animation.Play("run");//开始奔跑 } if (Input.GetKey(KeyCode.D)) { transform.Translate(Vector3.right * Time.deltaTime * speed, Space.World); animation.Play("run");//开始奔跑 } //设置角色方向 /* * LookAt(Vector3 worldPosition); * 手册上的解释:旋转物体,这个向前向量指向target的当前位置。 * 我是这样理解的: 假设: * 移动前的向量为 v1 * 移动后的向量为 v2 * 那么当前目标物体就会旋转指向v2-v1的方向向量 * LookAt()方法。要使用世界坐标系 Space.World * transform.position - oldPosition :移动前的方向-移动后的方向=目标向量 * transform.position + transform.position - oldPosition :在当前位置转向 */ transform.LookAt(transform.position + transform.position - oldPosition); } }
看到这里是不是发现。角色跑远后,越来越小了。因为这里角色在跑。摄像机并没有跟着跑动。那怎么办?
这里要让摄像机跟着角色移动,实现漫游的效果,这里很简单。只需要把camera拖到角色对象中。作为角色的子对象即可
这样一比较效果是不是很明显了
在上面的代码中。我们提到了LookAt方法。那它究竟是一个什么样的方法呢。上面的代码也有解释,如果还不懂。我们来对比下。
当移动角色。没有使用LookAt方法就是什么样的效果,看下图中。左边角色是使用了LookAt,右边角色是没有使用
理解这句话:LookAt是使:旋转物体,这个向前向量指向target的当前位置(来自手册的解释)
刚接触unity3d不久。但我已经深深的被他所吸引了。加油。我一定要成为Game Boy
本节资源模型下载
http://pan.baidu.com/s/1ARiBO
密钥:uqs8
相关文章推荐
- Unity3D精简版网络游戏雏形(简单网络通信聊天和角色监视案例)
- 【权限设计】一个案例,三个角色,简单说下B端产品的权限设计
- 一个案例,三个角色,简单说下B端产品的权限设计
- [Unity3D]在游戏开发中Notification Center的简单使用与案例说明
- unity3D角色状态随机切换,十分简单!
- Unity3D之使用ITween制作自动漫游超简单
- 使用unity3d搭建简单的场景以及第一人称角色的控制
- [Unity3D]手机3D游戏开发:使用UnityRemote开发一个简单的FPS案例
- 简单的基于spring security的基于角色验证的权限案例
- 一个简单创业案例带来的启示
- 菜鸟学SQL注入 --- 一个简单的教学案例
- 连接数据库与角色相关简单实现
- dojo1.1.0学习总结--简单表格案例
- 利用Opengl实现类似于角色漫游的场景
- 个简单创业案例带来的启示
- windbg入门之旅:(2)一个简单的integer divide-by-zero exception分析案例
- 案例4-3 Ajax的响应处理简单实例(征服Ajax——Web 2.0快速入门与项目实践Java)
- asp.net自定义简单角色管理
- dojo1.1.0学习总结--简单对话框登陆案例
- jboss下的ejb3中MessageDrivenBean的一个简单案例