在前面介绍了开始界面的创建点击打开链接

在我们创建完主游戏界面的背景后接下来开始完善主角的创建

一.主角的动作

选中Hierarchy窗口中的主角,点中Window->Animation的Create将自动为该对象添加Animator组件

将每帧图片按需要的时间帧拖过去

在Animator窗口内将增加一个动画

接下来点击如下图的加号,可以选择一个类型,这里选择Bool类型

点击idle动画与walk动画的连线

按如下图选择,意思是当触发变量walk为true时,动作walk将播放

动画管理代码列表如下:

AnimController.cs

using UnityEngine;
using System.Collections;public class AnimController : MonoBehaviour
{
public Animator[] anim;public void PlayIdleAnimation()
{
foreach(Animator value in anim)
{
value.SetBool("Walk",false);
}anim [0].SetBool ("Jump",false);
anim [0].SetBool ("ShootForward",false);
anim [0].SetBool ("ShootUP",false);}public void PlayWalkAnimation()
{
foreach (Animator value in anim)
{
value.SetBool("Walk",true);
}
}public void PlayJumpAnimation()
{
foreach (Animator value in anim)
{
value.SetTrigger("Jump");
}
}public void PlayTrowAnimation()
{
anim [0].SetTrigger ("Throw");
}public void PlayAttackAnimation()
{
anim [0].SetTrigger ("Attack");
}public void PlayShootForwardAnimation()
{
anim [0].SetBool ("ShootForward",true);
}public void PlayShootUpAnimation()
{
anim [0].SetBool ("ShootUP",true);
}
}

二.主角的移动管理

给主角添加BoxCollider2D,RigidBody2D,AudioSource组件,以及AnimControlle C#r脚本组件

PlayerController.cs

using UnityEngine;
using System.Collections;public enum BulletDirection
{
RIGHT,LEFT
}public class PlayController : MonoBehaviour
{
private Rigidbody2D rigidBody;
private AnimController anim;
private ShootAnim shoot;
private GrenadeAnim grenade;//给钢体一个移动的速度
public float moveSpeed=4.0f;//给钢体起跳的力
public float upForce=700.0f;public BulletDirection bdt=BulletDirection.RIGHT;// Use this for initialization
void Start ()
{
rigidBody =GetComponent<Rigidbody2D> ();
anim = GetComponent<AnimController> ();
shoot = GetComponent<ShootAnim> ();
grenade = GetComponent<GrenadeAnim> ();
}// Update is called once per frame
void Update ()
{
#region idle状态
rigidBody.velocity=new Vector2(0,rigidBody.velocity.y);anim.PlayIdleAnimation();
#endregion#region 控制移动
//获取按键的值,当h小于0时,表示按下A;h值大于0时,表示按下D
float h = Input.GetAxis ("Horizontal");if (h>0)
{
bdt=BulletDirection.RIGHT;this.transform.rotation=Quaternion.Euler(new Vector3(0,180,0));
rigidBody.velocity=new Vector2(h*moveSpeed,rigidBody.velocity.y);anim.PlayWalkAnimation();
}if (h<0)
{
bdt=BulletDirection.LEFT;this.transform.rotation=Quaternion.Euler(new Vector3(0,0,0));
rigidBody.velocity=new Vector2(h*moveSpeed,rigidBody.velocity.y);anim.PlayWalkAnimation();
}
#endregion#region 控制跳跃
if (Input.GetKeyDown(KeyCode.K) && rigidBody.velocity.y==0)
{
rigidBody.AddForce(Vector2.up*upForce);anim.PlayJumpAnimation();
}
#endregion#region 控制射击
if(Input.GetKey(KeyCode.J)&&Input.GetKey(KeyCode.W))
{
shoot.StartShoot(ShootDirection.UP);
anim.PlayShootUpAnimation();
}
else if(Input.GetKey(KeyCode.J))
{
shoot.StartShoot(ShootDirection.FORWARD);
anim.PlayShootForwardAnimation();
}
else
{
shoot.StopShoot();
}
#endregion#region 控制扔手榴弹
if(Input.GetKey(KeyCode.L))
{
grenade.StartGrenadeAnim();anim.PlayTrowAnimation();
}
else
{
grenade.StopGrenadeAnim();
}
#endregion
}#region 获取子弹设计方向(左右)
public BulletDirection GetCurrentBulletDirection()
{
return bdt;
}#endregion
}

这样主角的动画,左右移动,跳跃移动,子弹射击,炸弹投放已经准备好了

Unity5.x制作合金弹头(二)-主角的创建相关推荐

  1. Unity5.x制作合金弹头(一)-DoTween组件的使用

    通过制作合金弹头的开始界面来介绍DoTween组件的基本使用方法 DOTween组件下载链接点击打开链接 一.DoTween组件位移的使用: 1.添加DOTween Animation组件 2.在动画 ...

  2. Unity5.x制作合金弹头(五)-子弹与炸弹的创建

    工程源码下载点击打开链接 本节分子弹与炸弹的攻击方向.消失动画.触发碰撞体来阐述 一.攻击方向 在实例化弹药时,先判断弹药投放的方向,由主角的面朝方向来决定 Grenade.cs Start函数:由主 ...

  3. Unity5.x制作合金弹头(四)-相机的跟随

    游戏源码下载 进入下载 在主角移动时,相机需要跟随主角 本节简单,直接贴上代码 using UnityEngine; using System.Collections; using DG.Tweeni ...

  4. python创意编程绘图_python海龟画图制作的合金弹头主角

    这是用Python的海龟画图turtle模块制作的一个角色,人物和背景取自合金弹头,角色可以跳,可以左右行走. python海龟画图制作的合金弹头主角 下面是部分代码预览: ""& ...

  5. 【原创游戏】合金弹头S——Unity制作的同人游戏

    --纪念合金弹头陪伴的童年,回味横版过关射击快感 合金弹头S是一款Unity制作的同人游戏,由于当时我只是一个学了3个月游戏的同学,所以尚有一些不足之处,但这是我用Unity做的第一个原创作品 下载地 ...

  6. 合金弹头 逆向分析与外挂制作报告【内联HOOK】

    一.工具及游戏介绍 使用工具:Ollydbg,PEID,Cheat Engine 实现功能:玩家无敌 目标:找到全局数据,或关键代码块. 游戏版本:合金弹头1-5代珍藏版 二.逆向逻辑 1.初始判断[ ...

  7. 《洛杉矶之战》影评:真人版的合金弹头

    强烈推荐大家观看,我看过了,感觉很震撼. 导演: 乔纳森·里贝斯曼 编剧: Christopher Bertolini 主演: 艾伦·艾克哈特 / 米歇尔·罗德里格兹 / 拉蒙·罗德里格兹 / 布丽姬 ...

  8. 2017级C语言大作业 - 合金弹头

    合金弹头 C语言作业 分享17级同学大一上学期用C语言实现的合金弹头.分步骤代码.图片音乐素材.可执行程序可从百度网盘下载: 链接:https://pan.baidu.com/s/1cm01uEDNo ...

  9. 横版射击,王者归来|Cocos精品《合金弹头OL》

    <合金弹头OL>是由触控科技独家代理的横版硬派射击手游大作,拥有SNK公司合金系列正版授权,血统纯正,采取Cocos引擎激情打造,目前已火热上架App Store!饱含了一代人童年回忆的合 ...

最新文章

  1. 如何快速学好Shell脚本?
  2. IntelliJ IDEA - 热部署插件JRebel 安装使用教程
  3. Python基础教程:字典和Json
  4. 【物联网】OpenWrt编译出现Unable to find remote helper for 'https'问题
  5. vant组件搜索并选择_借助PARTsolutions 选型助手,轻松快速地找到组件。
  6. “数据中国”路在何方?答:在“数据中国加速计划”
  7. Tableau研学小课堂(part2)--Tableau数据源界面
  8. 【网络爬虫入门02】HTTP客户端库Requests的基本原理与基础应用
  9. HTML如何添加锚点,分享一点面试小经验
  10. android计算距离顶部的距离,(lua版)计算距离的逻辑是从Android的提供的接口(Location.distanceBetween)中拔来的,应该是最精确的方法了...
  11. Activiti工作流学习笔记01
  12. java 注解加载配置文件_Spring的Java配置方式和读取properties配置文件
  13. conda创建和使用python的虚拟环境
  14. 【第四次JAVA课,java语法基础】课件总结
  15. php bin2hex 反向,PHP bin2hex()和pack()函数
  16. TIA博途_数据的保持型与初始化的具体方法和相关问题汇总
  17. 一个几乎免费的云服务器和虚拟主机平台
  18. 诚之和:虚假滤镜、照骗风波,小红书到底得了什么病?
  19. SparkSql MAPJOIN优化之小表left join大表
  20. YOLOX训练:显存足够,但依旧CUDA out of memory(Tried to allocate 5.58 GiB,8.00 GiB total capacity,6.40 GiB free)

热门文章

  1. canvas画图不显示问题
  2. 莫比乌斯函数、莫比乌斯反演
  3. MySQL15道经典练习题
  4. 解决小米用蓝牙耳机听歌卡顿
  5. 王良:考砸了,学不好,父母、孩子怎么办
  6. 《所以,一切都是童年的错吗?》读书笔记
  7. EditPlus如何编译运行java
  8. 教大家用Python做一个任何视频都能看的软件
  9. Python Appium 安装与设置 全网最全!
  10. WCF 配置服务 演示