unity手游<少侠历险记>(2)人物攻击动画判定和怪物AI

本文介绍了Unity手游《少侠历险记》中的人物攻击动画判定和怪物AI设计。通过键盘控制角色移动,接近怪物时可进行锁定攻击,技能包括单体锁定和无锁定,伤害类型多样。怪物AI包括被攻击后的反击、追击和目标丢失行为。通过代码示例讲解了技能范围确定的方法,并展示了实际效果。
摘要由CSDN通过智能技术生成

前言


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

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

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

 

这几天编码下来,是时候写篇博客总结和分享下了,做出来的效果大致为:

方向键控制人物移动,靠近怪物时,按下攻击键,可以锁定怪物,进行攻击。也可以释放技能,

技能分为:单体锁定,无锁定,造成的伤害效果分为:单体伤害,群体伤害。

怪物受到人物的攻击,开始对人物进行攻击,人物远离时,进行追击,当之间的距离达到一定长度时,怪物的攻击目标消失

放上几张图看看效果吧




动画控制


这里的动画控制,并没有使用unity自身的动画状态机,而是通过脚本写一个状态类,通过对状态的判断,播放对应的动画片段

在人物控制脚本中,使用了委托的方式,根据状态的不同来调用动画控制脚本中对应的方法

下面给出代码片段供参考
	//人物状态 枚举
	public enum ControlAnimationState {Idle,Move,WaitAttack,Attack,Cast,ActiveSkill,TakeAtk,Death};
	//动画状态
	public ControlAnimationState ctrlAnimState;
	//人物状态
	void HeroAnimationState() {
		//静止
		if(ctrlAnimState == ControlAnimationState.Idle)
		{
			animation.animationState = animation.Idle;
		}
		//行走
		if(ctrlAnimState == ControlAnimationState.Move)
		{
			animation.animationState = animation.Move;
		}
		//攻击
		if (ctrlAnimState == ControlAnimationState.Attack) 
		{
            animation.animationState = animation.Attack;                      
		}
        //等待攻击
        if (ctrlAnimState == ControlAnimationState.WaitAttack)
        {
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值