unity射击游戏:超萌射手(1)使用EasyTouch3.0控制主角
本文由作者@zx一路飞奔出品,转载请注明出处
文章地址:http://blog.csdn.net/u014735301/article/details/42705443
作者微博:http://weibo.com/u/1847349851
人物创建
(1)给人物加上碰撞器和刚体组件,并固定刚体不能移动和旋转的方向
(2)添加动画状态机,添加参数 Move Dead来控制动画切换
(3)测试:在人物上挂一个move脚本,同时在摄像机上挂一个follow脚本跟随主角
- using UnityEngine;
- using System.Collections;
- public class PlayerMove : MonoBehaviour {
- public float speed = 1;
- private Animator anim;
- // Use this for initialization
- void Start () {
- anim = this.GetComponent<Animator>();
- }
- // Update is called once per frame
- void Update () {
- //控制移动
- float h = Input.GetAxis("Horizontal");
- float v = Input.GetAxis("Vertical");
- //transform.Translate(new Vector3(h, 0, v) * speed*Time.deltaTime);
- rigidbody.MovePosition(transform.position + new Vector3(h, 0, v) * speed * Time.deltaTime);
- //控制动画
- if (h != 0 || v != 0) {
- anim.SetBool("Move", true);
- } else {
- anim.SetBool("Move", false);
- }
- }
- }
- using UnityEngine;
- using System.Collections;
- public class FollowTarget : MonoBehaviour {
- public float smoothing = 3;
- private Transform player;
- // Use this for initialization
- void Start () {
- player = GameObject.FindGameObjectWithTag(Tags.player).transform;
- }
- // Update is called once per frame
- void FixedUpdate () {
- Vector3 targetPos = player.position + new Vector3(0, 1.3f, -1.3f);
- //在smoothing * Time.deltaTime时间 动画位置移动从from开始到to结束。
- transform.position = Vector3.Lerp(transform.position, targetPos, smoothing * Time.deltaTime);
- }
- }
这样人物就可以在场景内移动了
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一下。看看效果~
摇杆控制脚本
- using UnityEngine;
- using System.Collections;
- public class PlayerMove : MonoBehaviour
- {
- public float speed = 1;
- private Animator anim;
- void OnEnable()
- {
- //移动摇杆
- EasyJoystick.On_JoystickMove += On_JoystickMove;
- //停止移动摇杆
- EasyJoystick.On_JoystickMoveEnd += On_JoystickMoveEnd;
- //EasyButton.On_ButtonPress += On_ButtonPress;
- //EasyButton.On_ButtonUp += On_ButtonUp;
- }
- // Use this for initialization
- void Start()
- {
- anim = this.GetComponent<Animator>();
- }
- void On_JoystickMove(MovingJoystick move)
- {
- float angle = move.Axis2Angle(true);
- //旋转Y轴,改变人物朝向
- transform.rotation = Quaternion.Euler(new Vector3(0, angle, 0));
- //移动物体
- rigidbody.MovePosition(transform.position + new Vector3(move.joystickAxis.x, 0, move.joystickAxis.y) *speed* Time.deltaTime);
- //播放动画
- anim.SetBool("Move", true);
- }
- void On_JoystickMoveEnd(MovingJoystick move)
- {
- anim.SetBool("Move", false);
- }
- }
之后就可以通过摇杆来控制
unity射击游戏:超萌射手(1)使用EasyTouch3.0控制主角相关推荐
- Unity射击游戏发射子弹的方法和提升流畅性的小技巧
引言 在某些射击游戏里(2D和3D都适用),可能你需要创建子弹,第一想到的可能是新建一个发射子弹的脚本,就叫BulletController,然后每次按下什么键就直接上Instantiate函数. 伪 ...
- Unity 射击游戏的准星位置
做有射击元素的游戏制作准星时,随着物体的旋转以及视线偏移可能会产生一定的的误差,使得子弹(射线)发射的初始位置不在屏幕正中央,所以制作准星时,应该基于屏幕的宽高进行衡量.示例代码如下: Raycast ...
- unity射击游戏的倍镜
首先创建一个场景,然后再弄几个目标 然后在新建一个Image把名字设置成Beijing,把瞄准镜的贴图放上去并且调整到合适的大小(注意贴图要把Texture Type设置成2D/UI) 在新建一个Im ...
- SIKI学院简易射击游戏与数据读取保存学习笔记
知识点(疑问点) 1.如何控制枪的旋转(朝向)? 2.如何控制怪物的生成,消灭? 3.如何保存当前游戏数据? 4.游戏相关的开始结束,暂停功能如何制作? 1. 首先将枪放置在一个合适的位置,分别在X轴 ...
- unity第三人称射击游戏_在游戏上第3部分完美的信息游戏
unity第三人称射击游戏 Previous article 上一篇文章 The economics literature distinguishes the quality of a game's ...
- Unity空间射击游戏开发教程
描述 在本课程中,您将学习如何在unity中制作一款太空射击游戏.本课程使用全新的特性和编码实践,并且兼容所有较新版本的unity. 了解如何使用世界领先的免费游戏开发工具Unity创建太空射击游戏. ...
- Unity 4 3 制作一个2D横版射击游戏 2
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 在上一篇 ...
- unity太空射击源码_引擎入门 | 创建双杆射击游戏(入门 2)
点击上方"蓝字"关注我们吧! 本期我们继续为大家进行双杆射击游戏的后续教程 学习内容 3.整理资产 4.导入资产 5.安装 Blender 6.导入包 文章末尾可免费获取教程源代码 ...
- unity 3d原创制作射击游戏(全完整版+安卓apk编译)
目录 文章目录 目录 实验一 (1)设计如下UI界面,其中包含了canvas.Panel.Text.Button.Image.RawImage等UI元素 (2)实现点击Play按钮转换场景,点击Exi ...
最新文章
- Oracle 如何设置shared pool 和sga大细, 应该设置几大
- Day08 - 面向对象编程基础
- inotify-tools使用方法介绍
- “铜死亡”顶级研究文献解读
- MongoDB学习使用
- Python编程基础01:搭建Python开发环境
- 重读浙大版《概率论与数理统计》
- Java扫码登录原理
- PayPal提现到美国账户收35美元怎么办?最新3种解决办法!
- 使用Glide模仿微信图片加载策略
- 日本风俗业数据_神奇宝贝如何融入日本民俗
- NOJ 1116 哈罗哈的大披萨 【淡蓝】 [状压dp+各种优化]
- 真实烟雾效果PS笔刷
- windows 消息处理
- 手机里有哪些堪称神器的 APP?
- 算法题之创造新世界(动态规划)
- python 去掉双引号_你要偷偷的学Python,然后惊呆所有人(第一天) - python阿喵
- 活动报名发布小程序源码 聚会活动报名小程序完整版前端+后台管理Think
- 如何在Fedora12下安装realplayer11呢?
- iReport_web开发配置向导