这篇要把上一篇制作的HP条装在Player身上,在装之前先给Player有个死亡动画,一样把爆炸画面拖曳到场景制作成动画,好让这动画安装在Player身上
开启Player的Animator一样给个bool名为die,把刚刚存好的爆炸动画拉到Animator里面,从any state给一条动画线过去,设定die为true启动,毕竟是死亡动画拨放完毕就结束了
现在开启Player的程序
要在最上面的using里面多加一条
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// using UnityEngine.UI才能使用UI系统里的资料,未加就不能使用UI里图档…
using UnityEngine.UI;
public class PlayerControl : MonoBehaviour
{
private Animator anim;
private Rigidbody2D rig;
[SerializeField]float speed = 5f;
[SerializeField] GameObject bullet = null;
//序列化Hp先给个20滴
[SerializeField] float hp = 20f;
//序列化HpMax一样给个20滴
[SerializeField] float hpMax = 20f;
//序列化一个图档 hpBar预设空值(记得等等要在unity里给他这个值)
[SerializeField] Image hpBar = null;
float horizontalMove;
private void Start()
{
anim = GetComponent<Animator>();
rig = GetComponent<Rigidbody2D>();
InvokeRepeating("Attack", 0.1f, 1.1f);
//血条的填充度=现在血量除以最大血量
hpBar.fillAmount = hp / hpMax;
}
private void Update()
{
horizontalMove = Input.GetAxisRaw("Horizontal");
}
private void FixedUpdate()
{
Move();
}
void Move()
{
rig.velocity =
new Vector2(horizontalMove * speed, rig.velocity.y);
if (horizontalMove > 0.2f)
{
anim.SetBool("right",true);
}
if (horizontalMove < -0.2f)
{
anim.SetBool("left", true);
}
if(horizontalMove < 0.2f && horizontalMove > -0.2f)
{
anim.SetBool("right", false);
anim.SetBool("left", false);
}
}
void Attack()
{
Instantiate(bullet,transform.position,Quaternion.identity);
}
//触碰器碰到物件
private void OnTriggerEnter2D(Collider2D collision)
{
//如果(碰到的物件标签为"EnemyBullet")
if (collision.tag == "EnemyBullet")
{
//现在血量扣5滴
hp -= 5f;
//血条的填充度=现在血量除以最大血量
hpBar.fillAmount = hp / hpMax;
//如果(血量小於等於0)
if (hp <= 0)
{
//动画系统的die为true(将拨放死亡动画)
anim.SetBool("die", true);
//0.5秒後删除此物件(死亡动画约0.5秒)
Destroy(gameObject,0.5f);
}
}
}
}
改好程序记得刚刚设定Player的HPbar,可以用旁边的圈圈选择,也可以直接从场景的Hp拖曳进来(不要给成背景图唷~)
<<: 33岁转职者的前端笔记-DAY 13 图片格式及影音格式
这题目最一开始要做的事情就是,搞清楚什麽是bipartite? 一张图具有bipartite的性质...
相信 E2E 一定有做过遇到这种需要选择的部分,结构大致上会长这样 <select class...
还在学校上课的时候 某堂课的老师跟我们分享他在准备CEH的考试 老师示范了Cross Site Sc...
资料表的命名规则: 名称开头一定要是文字,第二个字以後才可以使用文字、数字或其他符号。 长度在1~3...
知识表达 符号处理其中的一个关键技术是「知识表达 (knowledge representation...