python和java的格斗动画_unity3d引擎+c#语言开发实战游戏:格斗类游戏

本课程讲解的主要内容:

1、游戏功能点

角色换装和信息存储

敌人的AI

BOSS的AI

虚拟操作杆

角色的行走控制

角色的控制

小地图实现

状态机和连招

2、 换装系统

1、导入模型资源文件,制作角色和武器的Prefab

(fbx files,Material.unitypackage)

2、介绍头部和手部的换装,和颜色的更换

3、制作UI控制界面

4、实现换装控制

5、换装信息的保存和加载

2.1 导入模型资源文件,制作角色和武器的Prefab

资源导入

(fbx files,Material.unitypackage)

资源分类

角色

角色身体部分

敌人

BOSS

模型导入属性设置

模型的动画导入

2.2介绍头部和手部的换装,和颜色的更换

通过SkinnedMeshRenderer组件来更换角色的外形(衣服)

什么是SkinnedMeshRenderer组件

当导入有蒙皮的网格时,骨骼蒙皮渲染器会自动添加到导入的网格。

sharedMesh

用于蒙皮的网格

通过设置Renderer组件.material.color的颜色来更换外形的颜色(衣服的颜色)

2.3 制作UI控制界面

界面开发(UI.unitypackage)

头部和手换装的按钮

颜色换装的按钮

2.4、实现换装控制

通过SkinnedMeshRender控制换装

SharedMesh

material.color

2.5 换装信息的保存和加载

PlayerPrefs

SetInt("key",value);

GetInt("key");

信息的加载分析

通过存储的身体的各个部分的Index,更换Mesh

通过存储的颜色的Index,更换角色的颜色

3、主角的控制

环境创建 Image.unitypackage FX.unitypackage

摄像机的跟随

使用CharacterController控制行走

添加虚拟杆控制

状态机设计

动画控制

3.1 环境的创建

资源导入

Image.unitypackage

FX.unitypackage

使用cube创建环境

使用FX中的特效给环境添加下雨的效果

3.2 摄像机的跟随

开发摄像机的跟随

使用Vertor3.Lerp 插值运算

摄像机的视角,让摄像机观察着角色

Quaternion.LookRotation 得到一个四元数,表示跟参数一样方向的旋转

Quaternion.Slerp 按照圆弧插值,这个插值计算更适用于,角度变换

3.3 使用CharacterController控制行走

使用Input.GetAxis("Horizontal") 和 "Vertical"得到垂直和水平方向的值

使用CharacterController.SimpleMove(Vector3)参数表示运动的方向和速度 单位可以认为是 m/s

3.4 添加虚拟杆控制行走

根据触摸位置的移动虚拟按钮

得到虚拟杆横向和垂直的值,控制角色的移动

3.5 主角的状态机设计

制作动画状态机

动画的属性设置,分为循环动画和一次性动画

主角的动画分类

休闲

行走

Attack1 Attack2 RangeAttack

3.6 的动画控制

设置虚拟的按钮

通过代码添加按钮的点击事件监听

EventDelegate normalClickEvent = new EventDelegate(this, "OnNormalAttackButtonClick");

GameObject.Find("NormalAttack").GetComponent().onClick.Add(normalClickEvent);

给状态机设置状态条件

修改Trigger    animator.SetTrigger("AttackB");

修改Boolanimator.SetBool("Walk", false);

4、敌人的设计和AI开发

导入Boss的模型和导入设置

根据导入动画设计Boss的状态机

开发Boss的AI(自动和自动寻路)

添加敌人Monster

设计Monster的状态机和AI

4.1 导入Boss的模型和导入设置

导入BOSS的模型和动画(使用mecanim动画系统导入)

关于动画的设置分为两种

不重复的 动画 Attack ,Damage,Death

重复的动画Stand,Run

根据导入的模型做成一个Prefab

4.2 根据导入动画设计Boss的状态机

根据Boss动画之间转换设计状态机

重要的方法

Animator.SetTrigger("");

Animator.SetBool("",true/false);

4.3 开发Boss的AI(自动和自动寻路)

CharacterController控制移动

SimpleMove(Vector3)移动

根据和角色的位置和距离,判断是否进行,的时候利用随机数来随机发起 Attack1 Attack2

4.4 添加敌人Monster

添加Monster的模型和动画

4.5 设计Monster的状态机和AI

设计Monster的状态机

设计Monster的AI-自动寻路和自动

5、敌人的设计和AI开发

导入Boss的模型和导入设置

根据导入动画设计Boss的状态机

开发Boss的AI(自动和自动寻路)

添加敌人Monster

设计Monster的状态机和AI

伤害

5.1 导入Boss的模型和导入设置

导入BOSS的模型和动画(使用mecanim动画系统导入)

关于动画的设置分为两种

不重复的 动画 Attack ,Damage,Death

重复的动画Stand,Run

根据导入的模型做成一个Prefab

5.2根据导入动画设计Boss的状态机

根据Boss动画之间转换设计状态机

重要的方法

Animator.SetTrigger("");

Animator.SetBool("",true/false);

5.3 开发Boss的AI(自动和自动寻路)

CharacterController控制移动

SimpleMove(Vector3)移动

根据和角色的位置,判断是否进行,的时候利用随机数来随机发起 Attack1 Attack2

5.4 添加敌人Monster

添加Monster的模型和动画

5.5 设计Monster的状态机和AI

根据模型中的动画设置状态机

控制敌人的AI(自动和自动寻路)

5.6 伤害

两个变量 HP ATK

根据动画添加Function

一用来处理

一用来处理受到

6、伤害

设计敌人的自动生成

设计公有接口 处理伤害

处理Player的武器

处理Player的枪

处理Monster的

处理Boss的

6.1 设计敌人的自动生成

设计敌人的生成的位置

创建敌人生成的脚本

控制三波敌人的生成

6.2 设计公有接口 处理伤害

设计处理伤害的共有类ATKAndDamage

设计TakeDamage方法

属性:

hp

normalAttack

attackDistance

导入FX-hit 打击的特效 Hit_Effect.unitypackage(Boss Monster)受到伤害的时候显示特效

6.3 处理Player的武器

在动画中合适的时机添加的事件Event

AttackA AttackB 单个目标

AttackRange范围

AttackGun 枪

6.4 处理Player的枪

设计Prefab

行走

触发检测

设计的发射

6.5 处理Monster的

Monster的动画中添加事件MonAttack

6.6 处理Boss的

Boss的动画

Attack01

Attack02

在动画中添加事件处理

7、掉落物品拾取和处理

开发掉落物品

掉落物品的拾取

处理武器切换

处理按钮的切换

7.1 开发掉落物品

设计掉落物品

随机运动

接触底面的检测

接触主角的检测

7.2 掉落物品的拾取

使用Vertor3.Lerp控制物品的拾取运动

在player上添加脚本控制拾取

7.3 处理武器切换

掉落物品的生成

拾取物品后处理武器的切换

控制每个特殊武器的显示时间

双剑

7.4 处理按钮的切换

面板的两种模式

normal range  (普通和范围)

red (发射)

使用单例模式 控制上边这两种面板的模式的切换

8、小地图和游戏后期处理

小地图的实现

在UI上设计小地图,和图标的生成

主角的图标的转向

控制敌人的图标的生成,位置和旋转更新

给游戏添加声音

给武器添加拖痕

场景的切换和换装信息的加载(游戏结束)

8.1 给游戏添加声音

导入声音资源 Sound.unitypackage

BGM

BossAttack

BossDeath

ButtonClick

GameOver

GameVictory

ItemPickup

MonterDeath

PlayerGunShot

PlayerSwordSwing

Thunderstorm

8.2 给武器添加拖痕

导入插件Pocket RPG Weapon Trails

8.3 场景的切换和换装信息的加载(游戏结束)

场景的切换Application.LoadLevel

给主角加载换装信息PlayerPrefs.GetInt

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值