角色移动和血条控制

 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 }

 

posted @ 2019-05-01 22:57  废柴米老鼠  阅读(219)  评论(0)    收藏  举报