学习目标:
实现人物死亡动画+代码
参考视频:秦无邪OvO的个人空间_哔哩哔哩_Bilibili秦无邪OvO,独立游戏开发者/美术/编曲;秦无邪OvO的主页、动态、视频、专栏、频道、收藏、订阅等。哔哩哔哩Bilibili,你感兴趣的视频都在B站。https://space.bilibili.com/335835274?from=search&seid=4530647365121956206&spm_id_from=333.337.0.0CSDNhttps://mp.csdn.net/mp_blog/creation/editor/122708406
学习内容:
最主要的还是要先把动画做好,第一次做动画没什么经验,画布比较小是64*32,建议做人物画布建立大一点,做好后测试一下能不能运行
代码部分:
在PlayerHealth的C#脚本中,当health <= 0的时候,调用动画的名字叫die的trigger,播放动画后延迟调用销毁对象。
PlayerHealth:
using System.Collections; using System.Collections.Generic; using UnityEngine;
public class PlayerHealth : MonoBehaviour { ? ? public int health; ? ? public float blinkTime; ? ? public int blinks; ? ? public float dieTime;
? ? private Renderer myRender; ? ? private Animator myAnim; ? ? void Start() ? ? { ? ? ? ? myRender = GetComponent<Renderer>(); ? ? ? ? myAnim = GetComponent<Animator>(); ? ? }
? ? // Update is called once per frame ? ? void Update() ? ? { ? ? ? ?? ? ? }
? ? public void DamagePlayer(int damage) ? ? { ? ? ? ? health -= damage; ? ? ? ? if(health <= 0) ? ? ? ? { ? ? ? ? ? ? myAnim.SetTrigger("Die"); ? ? ? ? ? ? Invoke("KillPlayer", dieTime); ? ? ? ? } ? ? ? ? BlinkPlayer(blinks,blinkTime); ? ? }
? ? void KillPlayer() ? ? { ? ? ? ? Destroy(gameObject); ? ? } ? ? void BlinkPlayer(int numBlinks,float seconds) ? ? { ? ? ? ? StartCoroutine(DoBlinks(numBlinks, seconds)); ? ? } ? ? IEnumerator DoBlinks(int numBlinks, float seconds) ? ? { ? ? ? ? for (int i = 0; i < numBlinks * 2; i++) ? ? ? ? { ? ? ? ? ? ? myRender.enabled = !myRender.enabled; ? ? ? ? ? ? yield return new WaitForSeconds(seconds); ? ? ? ? } ? ? ? ? myRender.enabled = true; ? ? } } ?
学习产出:
?播放成坤
|