1 using System.Collections;
2 using System.Collections.Generic;
3 using UnityEngine;
4 using UnityEngine.UI; //添加命名空间
5
6 public class Player : MonoBehaviour
7 {
8 //将做好的血条Canvas赋值给HpBar,使角色和血条绑定
9 public GameObject HpBar;
10 //创建Slider组件的对象,通过slider.value控制血量
11 private Slider slider;
12
13 void Start()
14 {
15 slider = HpBar.gameObject.GetComponent<Slider>();
16 }
17
18
19 void Update()
20 {
21 //角色移动
22 var h = Input.GetAxis("Horizontal");
23 var v = Input.GetAxis("Vertical");
24 Vector3 dir = new Vector3(h,0,v);
25 if (dir != Vector3.zero)
26 {
27 //通过方向dir改变角色朝向
28 transform.rotation = Quaternion.LookRotation(dir);
29 //角色移动
30 transform.Translate(Vector3.forward*2*Time.deltaTime);
31 }
32 //将角色的世界坐标转换为屏幕坐标,让血条位置 = 角色屏幕坐标 + 偏移值,让血条位于角色上方
33 HpBar.transform.position = Camera.main.WorldToScreenPoint(transform.position + Vector3.up * 1);
34 }
35
36 private void OnCollisionEnter(Collision collision)
37 {
38 //当角色碰到敌人时,角色掉血
39 if (collision.gameObject.tag == "Enemy")
40 {
41 slider.value -= 0.1f;
42 }
43 }
44 }