unity3d-学习笔记6-卡牌游戏制作
动画切换
实现在点击button之后弹出特效以及boss反应切换动画的效果
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class Boss : MonoBehaviour
{
public int id;
public string name;
public int life;
public int energy;
public int cardNumber;
public string attribution;
Image img;
int filledAmount;
Animator skillEffect;
Animator bossAnimator;
public Boss()
{
}
public Boss(int Id,string Name,int Life,int Energy,int CardNmuber,string Attribution)
{
id = Id;
name = Name;
life = Life;
energy = Energy;
cardNumber = CardNmuber;
attribution = Attribution;
}
public void cutLife()
{
// int timeCount = 0;
filledAmount = filledAmount + 1;
img.fillAmount -= filledAmount * 0.1f * Time.deltaTime;
skillEffect.SetInteger("isHit", 1);
StartCoroutine(WaitAndPrint(0.5f));
}
public void attack()
{
bossAnimator.SetInteger("bossState", 1);
StartCoroutine(bossAttack(1f));
}
IEnumerator WaitAndPrint(float waitTime)
{
yield return new WaitForSeconds(waitTime);
//等待之后执行的动作
skillEffect.SetInteger("isHit", 0);
attack();
}
IEnumerator bossAttack(float waitTime)
{
yield return new WaitForSeconds(waitTime);
bossAnimator.SetInteger("bossState", 0);
}
void Start()
{
filledAmount = 0;
img = GameObject.Find("lifeBar").GetComponent<Image>();
skillEffect = GameObject.Find("skillEffect").GetComponent<Animator>();
bossAnimator = GameObject.Find("Boss").GetComponent<Animator>();
}
}
其实就是运用了前一篇里的延迟进行和获得动画组件对象,替换动作的逻辑,没什么好说的
然后就是优化了一些逻辑,比如原先是在button组件里判定boss血量以及特效的,但是这个逻辑不太合理,应该是触发了这个事件后,通过调用boss的脚步方法来控制boss这个人物比较符合逻辑
今天本来想实现回合制的,但看到一篇大佬的文章里实现这个首先需要把人物和boss类都创建好才行,所以今天就先完成人物和boss 的类,下次再实现回合制,看了大佬的代码,整体来说不难,也是应用了延迟,然后多加了一些判定而已,逻辑会比较复杂,不过慢慢捋就好了
今天的一大突破就是基本没有怎么看大佬们的代码来当“搬运工”了,自己在脑里过了一遍代码之后就直接上来敲了,然后有bug就看问题在哪,一个一个的解决,发现很顺畅,难道我也开始变强了吗hhhhh
https://blog.csdn.net/qinyuanpei/article/details/28125171
这篇是我看的实现回合制的大佬的帖子,有兴趣的可以看看<
临近过年,心思有点放松,希望能在放假的时候把一个极简版的游戏先发布出来,建立一波信心,才能有动力往后研究,加油!
版权声明:本文为pure81原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。