【Unity2D】实现人物死亡动画+代码
學(xué)習(xí)目標(biāo):
實(shí)現(xiàn)人物死亡動(dòng)畫(huà)+代碼
參考視頻:秦?zé)o邪OvO的個(gè)人空間_嗶哩嗶哩_Bilibili秦?zé)o邪OvO,獨(dú)立游戲開(kāi)發(fā)者/美術(shù)/編曲;秦?zé)o邪OvO的主頁(yè)、動(dòng)態(tài)、視頻、專(zhuān)欄、頻道、收藏、訂閱等。嗶哩嗶哩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
學(xué)習(xí)內(nèi)容:
最主要的還是要先把動(dòng)畫(huà)做好,第一次做動(dòng)畫(huà)沒(méi)什么經(jīng)驗(yàn),畫(huà)布比較小是64*32,建議做人物畫(huà)布建立大一點(diǎn),做好后測(cè)試一下能不能運(yùn)行
代碼部分:
在PlayerHealth的C#腳本中,當(dāng)health <= 0的時(shí)候,調(diào)用動(dòng)畫(huà)的名字叫die的trigger,播放動(dòng)畫(huà)后延遲調(diào)用銷(xiāo)毀對(duì)象。
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;
? ? }
}
?
學(xué)習(xí)產(chǎn)出:
?播放成坤
總結(jié)
以上是生活随笔為你收集整理的【Unity2D】实现人物死亡动画+代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android 光晕动画,充电动画软件下
- 下一篇: 美国对华贸易逆差及其为何如此之高