对于第三人称的游戏,主人公身上一般加一个character controller用来控制移动。这时候需要自己模拟重力,让主人公站在地板上。如果用A D控制左右, W S控制前后,那么控制移动代码可以这么写:

public class Move : MonoBehaviour {public CharacterController character;public float speed;// Use this for initializationvoid Start () {character = this.GetComponent<CharacterController>();speed=1f;}// Update is called once per framevoid Update () {float horizontal = Input.GetAxis("Horizontal"); //A D 左右float vertical = Input.GetAxis("Vertical"); //W S 上 下float moveY = 0;float gravity = -9.8f;moveY = gravity*Time.deltaTime;character.Move(new Vector3(horizontal, moveY, vertical) * speed * Time.deltaTime);}
}

使用Input.GetAxis方法获取下列默认轴: "Horizontal" 和"Vertical" 映射于控制杆、A、W、S、D和箭头键(方向键)。horizontal和verical分别是两个介于[-1,1]之间的数。利用这段代码,人物只在xz平面上移动。

移动还可以用transform.Translate方法,或者使用Rigidbody并赋予刚体速度。但有一点要注意,如果移动命令是在Update()函数里面,物体移动时会有抖动情况,因为每一帧时间不固定,移动的距离有长有短。解决这个问题的方法是把移动语句写在FixedUpdate()函数里面,因为该函数每一帧的长度固定。

具体其他移动方法可以看http://www.jianshu.com/p/5653b0be5fd4

转载于:https://www.cnblogs.com/vaecn/p/7191027.html

Unity3d中的人物移动相关推荐

  1. Unity3D中实现人物的第一人称视角

    打开unity创建一个场景地图可以添加一个Plane作为地面 在Hierarchy视图中右键创建一个胶囊体(Capsule)作为Player,添加好后重置胶囊体的位置,并且调整胶囊体在一个合适的位置. ...

  2. 时光煮雨 Unity3D实现2D人物移动-总结篇

    系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③-UGUI DoT ...

  3. 简要分析unity3d中剪不断理还乱的yield

    在学习unity3d的时候很容易看到下面这个例子: 1 void Start () { 2 StartCoroutine(Destroy()); 3 } 4 5 IEnumerator Destroy ...

  4. unity游戏中提示信息如何实现_RPG游戏中的剧情在Unity3D中如何实现呢?

    原标题:RPG游戏中的剧情在Unity3D中如何实现呢? RPG游戏想必不用多介绍了,剧情系统是RPG游戏中必不可少的功能. 曾经听过一些朋友谈论:目前正在做一款RPG游戏,但是不知道如何实现RPG游 ...

  5. Unity3D中使用Joystick Pack实现摇杆控制

    学更好的别人, 做更好的自己. --<微卡智享> 本文长度为2342字,预计阅读6分钟 前言 花了几个小时重新根据Unity3D的初学者教程做了一个简单的Demo,做完后确实对新人来说是个 ...

  6. unity3d中布娃娃系统

    转自: http://forum.mirax.com.tw/unity/viewtopic.php?f=133&t=221 关于unity3d中布娃娃系统使用的教程不多,下面是一篇比较详细基础 ...

  7. 【原创】点点鼠标在Unity3D中实现准电影级镜头感渲染效果

    学习和使用Unity3D也有个把月的时间了,得益于十多年来对3D图形算法及游戏编程的不懈努力学习,上手Unity3D我居然只用了1晚的时间,这不是夸张的说法.我只能用一句话来形容我当时的感觉:众里寻他 ...

  8. Unity3D实现2D人物动画① UGUINative2D序列帧动画

    原理 看过前篇的朋友,一定能猜到这篇的内容了,2D人物动画,这是一个老生常谈的话题,很多人都写过或者提供过类似的代码,本文还是遵守着重原理,代码次之的原则.下面是根据以前自己学习的时候学习" ...

  9. 时光煮雨 Unity3D实现2D人物动画① UGUINative2D序列帧动画

    系列目录 [Unity3D基础]让物体动起来①--基于UGUI的鼠标点击移动 [Unity3D基础]让物体动起来②--UGUI鼠标点击逐帧移动 时光煮雨 Unity3D让物体动起来③-UGUI DoT ...

最新文章

  1. 无线路由器与无线AP的区别
  2. h5 img js 点击图片放大_5分钟学会h5生成图片海报!
  3. window下ffmpeg的编译
  4. r语言datarame删除行_R语言缺失值的处理:线性回归模型插补
  5. Restful、SOAP、RPC、SOA、微服务之间的区别
  6. Linux-实用快捷键操作
  7. ubuntu lamp(apache+mysql+php) 环境搭建及相关扩展更新
  8. 工作工资不高,很普通的一个我
  9. rdt1.0,rdt2.0,rdt2.1,rdt2.2,rdt3.0
  10. 2020 年TI 杯大学生电子设计竞赛-无人机
  11. 算法竞赛入门经典笔记
  12. 中标麒麟桌面系统V7.0-安装VMware 15.5
  13. C++:动态规划DP;
  14. 前馈电容的作用-DCDC
  15. 【Linux】shell脚本实战-使用shell进行数学运算
  16. 华为防火墙 相关命令
  17. 猜数字(超级简单题目)
  18. mark:Kafka
  19. syntax error, expect {, actual error, pos 1, fastjson-ve
  20. 牛客数据库SQL实战 51-60(substr切割字符串、group_concat组拼接、limit_offset分页、exists条件成立判断、case分支、表的复用)

热门文章

  1. 【Unity小游戏】 | 愤怒的小鸟
  2. [P1373]小a和uim之大逃离
  3. Docker入门介绍
  4. vue实际运用五:不需要响应式的数据的处理
  5. day9-字符串作业
  6. Nelder Mead算法推荐阅读博文
  7. 电脑莫名奇妙地出现了嘀嗒壁纸,只有下拉的水滴图标,找不到文件所在位置,怎么删除?
  8. 2019美和易思第十一期班主任选拔培训(贵州+重庆区域)拉开帷幕
  9. ubuntu16.04安装ROS Kinetic(保姆式安装)
  10. 图像金字塔实现图像缩放_一个简单的VueJS组件,用于图像放大/产品缩放