本文由作者@zx一路飞奔出品,转载请注明出处

文章地址:http://blog.csdn.net/u014735301/article/details/42705443

作者微博:http://weibo.com/u/1847349851


人物创建

(1)给人物加上碰撞器和刚体组件,并固定刚体不能移动和旋转的方向

(2)添加动画状态机,添加参数 Move Dead来控制动画切换

(3)测试:在人物上挂一个move脚本,同时在摄像机上挂一个follow脚本跟随主角

[csharp]  view plain copy
  1. using UnityEngine;
  2. using System.Collections;
  3. public class PlayerMove : MonoBehaviour {
  4. public float speed = 1;
  5. private Animator anim;
  6. // Use this for initialization
  7. void Start () {
  8. anim = this.GetComponent<Animator>();
  9. }
  10. // Update is called once per frame
  11. void Update () {
  12. //控制移动
  13. float h = Input.GetAxis("Horizontal");
  14. float v = Input.GetAxis("Vertical");
  15. //transform.Translate(new Vector3(h, 0, v) * speed*Time.deltaTime);
  16. rigidbody.MovePosition(transform.position + new Vector3(h, 0, v) * speed * Time.deltaTime);
  17. //控制动画
  18. if (h != 0 || v != 0) {
  19. anim.SetBool("Move", true);
  20. } else {
  21. anim.SetBool("Move", false);
  22. }
  23. }
  24. }
[csharp]  view plain copy
  1. using UnityEngine;
  2. using System.Collections;
  3. public class FollowTarget : MonoBehaviour {
  4. public float smoothing = 3;
  5. private Transform player;
  6. // Use this for initialization
  7. void Start () {
  8. player = GameObject.FindGameObjectWithTag(Tags.player).transform;
  9. }
  10. // Update is called once per frame
  11. void FixedUpdate () {
  12. Vector3 targetPos = player.position + new Vector3(0, 1.3f, -1.3f);
  13. //在smoothing * Time.deltaTime时间 动画位置移动从from开始到to结束。
  14. transform.position = Vector3.Lerp(transform.position, targetPos, smoothing * Time.deltaTime);
  15. }
  16. }

这样人物就可以在场景内移动了

EasyTouch3.0插件

导入资源包,添加一个Joystick的实例

Hierarchy中会出现三个东东

属性:

Joystick name :摇杆名称

Enable joystick :是否显示摇杆

Activated : 和enable类似

Show debug area :勾选后会显示一个矩形的边缘区域

Use fixed update :是否使用fixed update,默认是update ,如果人物移动方法是用rigidbody.MovePosition的话,请勾选上,否则会出现移动时的卡顿

Use GUI Layout :是否使用GUI layout

属性:控制摇杆的位置的大小

Dynamic joystick :默认是不勾选的,如果勾选后,摇杆在屏幕上不显示,当有点击时会显示

Anchor :位置锚点

offset :x,y位置设置

Area radius :区域半径

Touch radius :中心圆心的半径

Restrict to area :限制在区域内

Reset finger exit :手指离开区域后重置位置

Dead zone radius :拖动范围在该半径内,没效果

属性:

Interaction type :交互的方法 Event Notification是通过事件控制移动

Broadcast messages :如果你使用js编写脚本,就必须要勾

Enable X axis

Speed :控制移动速度

Inverse axis :反转控制方向

Smooth return :勾选后和Vector3.Lerp的效果类似

Enable inertia :勾选后有个惯性的效果,即停止操作摇杆时人物不会马上停止运

属性:控制摇杆的纹理,自己DIY一下。看看效果~

摇杆控制脚本

[csharp]  view plain copy
  1. using UnityEngine;
  2. using System.Collections;
  3. public class PlayerMove : MonoBehaviour
  4. {
  5. public float speed = 1;
  6. private Animator anim;
  7. void OnEnable()
  8. {
  9. //移动摇杆
  10. EasyJoystick.On_JoystickMove += On_JoystickMove;
  11. //停止移动摇杆
  12. EasyJoystick.On_JoystickMoveEnd += On_JoystickMoveEnd;
  13. //EasyButton.On_ButtonPress += On_ButtonPress;
  14. //EasyButton.On_ButtonUp += On_ButtonUp;
  15. }
  16. // Use this for initialization
  17. void Start()
  18. {
  19. anim = this.GetComponent<Animator>();
  20. }
  21. void On_JoystickMove(MovingJoystick move)
  22. {
  23. float angle = move.Axis2Angle(true);
  24. //旋转Y轴,改变人物朝向
  25. transform.rotation = Quaternion.Euler(new Vector3(0, angle, 0));
  26. //移动物体
  27. rigidbody.MovePosition(transform.position + new Vector3(move.joystickAxis.x, 0, move.joystickAxis.y) *speed* Time.deltaTime);
  28. //播放动画
  29. anim.SetBool("Move", true);
  30. }
  31. void On_JoystickMoveEnd(MovingJoystick move)
  32. {
  33. anim.SetBool("Move", false);
  34. }
  35. }

之后就可以通过摇杆来控制

unity射击游戏:超萌射手(1)使用EasyTouch3.0控制主角相关推荐

  1. Unity射击游戏发射子弹的方法和提升流畅性的小技巧

    引言 在某些射击游戏里(2D和3D都适用),可能你需要创建子弹,第一想到的可能是新建一个发射子弹的脚本,就叫BulletController,然后每次按下什么键就直接上Instantiate函数. 伪 ...

  2. Unity 射击游戏的准星位置

    做有射击元素的游戏制作准星时,随着物体的旋转以及视线偏移可能会产生一定的的误差,使得子弹(射线)发射的初始位置不在屏幕正中央,所以制作准星时,应该基于屏幕的宽高进行衡量.示例代码如下: Raycast ...

  3. unity射击游戏的倍镜

    首先创建一个场景,然后再弄几个目标 然后在新建一个Image把名字设置成Beijing,把瞄准镜的贴图放上去并且调整到合适的大小(注意贴图要把Texture Type设置成2D/UI) 在新建一个Im ...

  4. SIKI学院简易射击游戏与数据读取保存学习笔记

    知识点(疑问点) 1.如何控制枪的旋转(朝向)? 2.如何控制怪物的生成,消灭? 3.如何保存当前游戏数据? 4.游戏相关的开始结束,暂停功能如何制作? 1. 首先将枪放置在一个合适的位置,分别在X轴 ...

  5. unity第三人称射击游戏_在游戏上第3部分完美的信息游戏

    unity第三人称射击游戏 Previous article 上一篇文章 The economics literature distinguishes the quality of a game's ...

  6. Unity空间射击游戏开发教程

    描述 在本课程中,您将学习如何在unity中制作一款太空射击游戏.本课程使用全新的特性和编码实践,并且兼容所有较新版本的unity. 了解如何使用世界领先的免费游戏开发工具Unity创建太空射击游戏. ...

  7. Unity 4 3 制作一个2D横版射击游戏 2

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在上一篇 ...

  8. unity太空射击源码_引擎入门 | 创建双杆射击游戏(入门 2)

    点击上方"蓝字"关注我们吧! 本期我们继续为大家进行双杆射击游戏的后续教程 学习内容 3.整理资产 4.导入资产 5.安装 Blender 6.导入包 文章末尾可免费获取教程源代码 ...

  9. unity 3d原创制作射击游戏(全完整版+安卓apk编译)

    目录 文章目录 目录 实验一 (1)设计如下UI界面,其中包含了canvas.Panel.Text.Button.Image.RawImage等UI元素 (2)实现点击Play按钮转换场景,点击Exi ...

最新文章

  1. Oracle 如何设置shared pool 和sga大细, 应该设置几大
  2. Day08 - 面向对象编程基础
  3. inotify-tools使用方法介绍
  4. “铜死亡”顶级研究文献解读
  5. MongoDB学习使用
  6. Python编程基础01:搭建Python开发环境
  7. 重读浙大版《概率论与数理统计》
  8. Java扫码登录原理
  9. PayPal提现到美国账户收35美元怎么办?最新3种解决办法!
  10. 使用Glide模仿微信图片加载策略
  11. 日本风俗业数据_神奇宝贝如何融入日本民俗
  12. NOJ 1116 哈罗哈的大披萨 【淡蓝】 [状压dp+各种优化]
  13. 真实烟雾效果PS笔刷
  14. windows 消息处理
  15. 手机里有哪些堪称神器的 APP?
  16. 算法题之创造新世界(动态规划)
  17. python 去掉双引号_你要偷偷的学Python,然后惊呆所有人(第一天) - python阿喵
  18. 活动报名发布小程序源码 聚会活动报名小程序完整版前端+后台管理Think
  19. 如何在Fedora12下安装realplayer11呢?
  20. iReport_web开发配置向导

热门文章

  1. 情绪管理本质上是认知管理 —— 一份情绪、认知管理升级清单
  2. RabbitHole:我们的网站需要停机一些时间
  3. wr720n改无线打印服务器,tplink如何关闭dhcp
  4. 移动端h5文字长按复制_移动端开发 H5 页面在 iOS手机上无法实现 长按复制文本 求解决...
  5. mui 长按复制内容多处复用
  6. 2023年程序员生存指南,8条中肯建议!
  7. 面向对象的四大特征(非常重要)
  8. 操作符Operator(1)
  9. 抽象工厂模式、建造者模式结构图
  10. 棕色小瓶开始了java程序生涯,也开始了自己的java学习日志