Unity中简单完成血条跟随,飘血效果等

代码如下:

 float speed = 3f;
    public Text texts;
    public Transform qiu;
    public Transform Xue;
    NavMeshAgent age;
    Animator an;
    public GameObject enamy;
    public static bool a2=false;
    public Image aaa;
    void Start()
    {
        an = GetComponent();
        age = GetComponent();
        StartCoroutine(BB());
        
    }

    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.Q))
        {
            an.SetTrigger("ji1");
        }
        Vector3 pos = Camera.main.WorldToScreenPoint(qiu.position);
        Xue.position = pos;
        texts.transform.position = pos;
        if (a2)
        {
            texts.text = (-10).ToString();
            aaa.fillAmount -= (0.1f);
            StartCoroutine(AA());
            a2 = false;
        }
        if (Input.GetMouseButtonDown(1))
        {
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
                age.SetDestination(hit.point);
                transform.LookAt(hit.point);
            }
        }
        if (age.remainingDistance <= 1f)
        {
            an.SetFloat("run", 0);
        }
        else
        {
            an.SetFloat("run", 1);
        }
    }
    IEnumerator AA()
    {
        yield return new WaitForSeconds(3f);
        texts.text = null;
    }
    IEnumerator BB()
    {
        yield return new WaitForSeconds(3f);
        int z = Random.Range(1,11);
        int x = Random.Range(-11,11);
        Instantiate(enamy,new Vector3(x,0,z),Quaternion.identity);
    }

血条跟随:先将玩家世界坐标转换为屏幕坐标,然后把这个值给image创建的血条,将这段放入Update里,即可完成血条跟随,飘血效果一样,这个代码还不完善,后期我会去完善

你可能感兴趣的:(Unity,unity,c#)