unity 3d中制作游戲中人物的血條和名字的顯示


在游戲當中,人物的血條是必不可少的。現在我就來講講如何制作吧(用到NGUI了,在此NGUI的使用方法我就不多講了)。為了激發大家的興趣,我先上傳幾張圖片show下吧。

  ............

..........

 

看看,效果還行吧。我先講講思路吧。

 

1.讓血條和名字跟着人物,並且在人物上方。要實現這樣的效果,我們就可以以人物為參照物就可以,在人物的基礎上再加上一段距離就可以。

2.當人物旋轉方向的時候還要血條一直朝着攝像機,只是人物會有移動的表現,而血條確沒有轉動的表現,要實現這個效果,我們可以用unity封裝好了的LookRotation()方法,我試過LookAt()這個方法,覺得還是不行,有點小問題。

我覺得就是這2個難點。其他的沒什么難點了。具體實現如下:

 

1。創建一個空物體,再在其下創建一個Panel(不創建這個是在主攝像機顯示不出來的,也即是沒有NGUI中的UI Root (2D)這些下面的重要顯示條件),作為子物體。我們再在Panel下面創建一個Label用來顯示我們的名字,再創建一個Progress Bar,作為顯示血條的。如圖:

(注:創建地形啊,燈光啊這些我就不說了,我用的人物就是unity里面自帶的那個,這個我也不多講了,我的整個工程就是上面那幾個物體)。

好了,現在該我們用腳本控制了。上次我總結了個攝像機跟隨人的總結,大家可以看看那里的腳本,在此說下,用unity里面的那個第三視角的那個自帶的相機跟着人物的腳本效果不好,這個就是因為那個自帶的腳本是始終對着人物背后的。我改進了下上次的相機跟着人物的腳本,如下:

using UnityEngine;
using System.Collections;

public class Follow : MonoBehaviour
{

    public Transform character;   //攝像機要跟隨的人物
    public float smoothTime = 0.01f;  //攝像機平滑移動的時間
    private Vector3 cameraVelocity = Vector3.zero;
    public Vector3 offset;   //攝像機坐標離人物的坐標差值
  

    void Update()
    {
        transform.position = Vector3.SmoothDamp(transform.position, character.position + offset, ref cameraVelocity, smoothTime);
    }

}

然后將這段代碼托給攝像頭.我修改它們的坐標值如下,並將人物拖進了character。

 

現在我們來用腳本控制血條和名字了. 腳本如下:

using UnityEngine;
using System.Collections;

public class Blood : MonoBehaviour {

     public GameObject bloodBar;//獲取血條信息。
     public GameObject MainCamera;//獲取主攝像機  
     public Vector3 offset;  //血條和人物坐標的差值,也就是血條在人物的上中方...之類的.這樣理解

    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {

        //讓血條信息一直處於人物的頭頂某處
        bloodBar.transform.position=transform.position+offset;

        Vector3 relativePos = transform.position - MainCamera.transform.position;
        Quaternion rotation = Quaternion.LookRotation(relativePos);
        bloodBar.transform.rotation = rotation;
        //bloodBar.transform.LookAt(MainCamera.transform.position);
    }

}

 

我們就將這段代碼給托人物.並且設置如下:

 

好了,我們運行吧,測試下,效果還行吧.

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM