1. 程式人生 > >Unity3D的NGUI實現血條跟隨功能

Unity3D的NGUI實現血條跟隨功能

初學Unity3D,碰到很多問題,也走了很多彎路。最近做的一個安卓版的RPG小遊戲,用到了敵人血條跟隨功能。在網上查了很多資料,最後整理出了一個我覺得挺簡單的方法。(第一次寫部落格,我不知幾臉懵逼,有點小激動^_^)。

NGUI下實現血條跟隨功能
1、首先要做好血條。在網上聽說直接用UISprite做更方便,通過控制UISprite的FillAmount來更新血量資訊。這裡寫圖片描述
將Filp設定為水平就可以了,拖動Fill Amount會看到跟UISlider一樣的效果。最後將血條做成一個Prefab。

2、在血條跟隨的遊戲物體上,建立一個空的GameObject作為子物體。這個的位置用於例項化血條,所以調整其位置在遊戲物體上方一點(遊戲中一般血條都在頭頂)。然後在上面新增一個指令碼來控制。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyHP : MonoBehaviour
{

    public GameObject prefab;//血條的Prefab
    public GameObject hud;//例項化出來的血條
    private float Fomat;//主攝像機到當前位置的距離
    Vector3 pos;

    void Start()
    {
        pos = transform.position;
        hud = GameObject.Instantiate(prefab, pos, Quaternion.identity) as
GameObject;//例項化血條 Fomat = Vector3.Distance(pos, Camera.main.transform.position); hud.SetActive(false);//血條預設不顯示,為了節約效能 } void Update() { if (hud) { hud.transform.position = WorldToUI(transform.position);//轉換座標 } } public Vector3 WorldToUI
(Vector3 point) { Vector3 pt = Camera.main.WorldToScreenPoint(point);//將世界座標轉換成螢幕座標 pt.z = 0; Vector3 ff = NGUITools.FindCameraForLayer(hud.layer).ScreenToWorldPoint(pt);//將螢幕座標轉換成NGUI座標 return ff; } }

程式碼還是挺簡單的,由此實現了血條跟隨功能,希望有大神來批評指正。(下圖是我的第一個RPG遊戲哈哈,雖然做得很粗糙,但是學到了很多)

這裡寫圖片描述

網上的資料很多很雜,通過自己學習、實踐、試錯,最後才能整理出一個適合自己的方法。寫部落格意在分享自己的學習經歷。
抱拳了~老鐵們!= ̄ω ̄=

相關推薦

Unity3D的NGUI實現跟隨功能

初學Unity3D,碰到很多問題,也走了很多彎路。最近做的一個安卓版的RPG小遊戲,用到了敵人血條跟隨功能。在網上查了很多資料,最後整理出了一個我覺得挺簡單的方法。(第一次寫部落格,我不知幾臉懵逼,有點小激動^_^)。 NGUI下實現血條跟隨功能 1、首先要

Unity中UGUI人物跟隨的幾種實現方式(一)

昨天在群裡有人在做遊戲的時候遇到了一個坑,就是用UGUI做人物血條跟隨遇到了大坑,今天就來說說如何用UGUI來做人物血條跟隨。 第一種: 把Canvas畫布作為Player的子物體。 首先:佈置一下場

Unity開發:跟隨實現

之前在網上看了很多人物血條跟隨的方式,都不是很順手..包括各種偏移的計算啊什麼的都不是很完美,於是仔細去看了一篇RectTransform屬性的詳解,又瞭解了一下座標轉換的原理,最終得到了一個比較完美而

UGUI製作怪物跟隨

1.拖進人物模型, 2.給人物模型加上如下元件 、 3.建立一個指令碼控制 程式碼如下: using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(Ch

unity3D製作跟隨的研究

在製作遊戲的時候都會用到血條,尤其RPG遊戲,那麼這個怎麼製作呢? 第一種NGUI製作,這裡要引入NGUI HUD Text ,這是最簡單的方法。製作一個slider給其新增指令碼Follow Target如下圖: 我們給cube頭上設定一個空物體,這樣做是為了不讓血條裡

【Unity】用NGUI實現和傷害顯示

using UnityEngine; using System.Collections; public class create_HP : MonoBehaviour {     public GameObject HP_prefab;  //預設的血條     public Transform create

Unity3D---使用GUI實現的製作

血條的製作有很多的方法,在此介紹使用GUI製作血條的方法,希望對大家有所幫助: using UnityEngine; using System.Collections; public class P

Unity3DRPG人物頭頂跟隨

建立血條UI; 建立角色物體,掛載指令碼; 獲得角色位置座標,轉化為螢幕座標。 Vector3 pt = Camera.main.WorldToScreenPoint(new Vector3(t

Unity3D學習筆記(四)分別使用IMGUI和UGUI實現的預製設計

分別使用IMGUI和UGUI實現血條的預製設計 血條(Health Bar)的預製設計。具體要求如下: 分別使用 IMGUI 和 UGUI 實現 使用 UGUI,血條是遊戲物件的一個子元素,任何時候需要面對主攝像機 分析兩種實現的優缺點 給出預製的使用

cocos2d-x 如何使用CCProgressTimer作為實現跟隨怪物進行移動,自動掉,然後死亡。

1、如何使用CCProgressTimer  2、如何跟隨怪物  3、如何掉血和死亡  4、結構層次。  //注意加紅色部分 樣例程式碼如下: 怪物的定義: class Enemy :public CCSprite { public:     Enemy(CCPoint

unity實現3D圓形功能

最近需要一個3D的圓形血條功能,多方測試完成後做個簡單總結。 1、上來的思路考慮NGUI實現的Fill效果,檢視NGUI程式碼發現它的實現方式是動態修改Mesh形狀實現的,所以考慮按本方案嘗試一次。 shader選擇用簡單的混合: float4 frag(Vert

用python實現進度功能

我在做python的作業:ftp服務時,客戶端能夠上傳、下載檔案,這個時候需要編寫一個進度條來表示當前的傳輸進度。 我們可以使用sys,模組來完成任務,需要用到sys.stdout這個方法: 程式示例: import sys import time def process_bar(precent,

unity 實現滑鼠控制角色移動和角色頭部的顯示

在很多專案中,都有這樣的場景就是滑鼠點選一個位置,滑鼠所控制的玩家就會移動到指定的位置處,還有就是在戰鬥過程中任務頭上血條的UI跟隨顯示,今天就講一下如何實現通過滑鼠控制人物移動和人物頭部血條的顯示。 一、首先是搭建簡易的3D場景 這裡使用Terrain地形元件,安裝官方

使用Angularjs jQuery在手機上實現滑動到底自動載入更多功能

                關鍵詞:directive infiniteScroll infiniteScrollDistance infiniteScrollDisabled $window.on $window.off在網上查了很多相關技術,在電腦瀏覽器上能正常的實現自動載入更多功能,但是放到手機AP

VS2008下VLC播放器,實現播放、暫停、停止、快進、截圖、進度顯示、進度控制功能

可以直接使用的原始碼:http://download.csdn.net/detail/dafenqie/9792806 1、首先建立一個基於對話方塊的應用程式; 2、建立完成後,把VLC的標頭檔案目錄vlc拷貝到工程目錄下,拷貝libvlc.dll、libvlccore.d

Android進階之ListView實現資料同時倒計時功能

1 概述 最近在做一個網購APP,有個小功能就是限時搶購商品在限定時間內有優惠活動,我們需要給每個件商品做一個倒計時顯示告訴使用者還剩下多少時間。專案中我們有用到ListView和GridView來載入我們的商品資料,對每條資料(對應一件商品)進行倒計時。倒計

UGUI 製作,3d物體跟隨移動

今天學習一下如何實現UGUI 2dUI跟隨3d物體移動的效果 建立cube,建立Image。image作為血條,跟隨cube移動 在cube上面新增指令碼 using UnityEngine;

Unity UGUI實現分段式

我們可以看到像英雄聯盟等遊戲裡英雄頭頂的血條顯示並非是純色的,而是根據血量的多少而顯示一定量的格子,這種方式明顯是比較友好、比較美觀的,事實上我們的遊戲裡面也想實現這樣的效果,那該怎麼辦呢?根據血量的多少同時建立N多個小格子圖片?這明顯不合理;根據血量多少同時建立N多個分割線

NGUI名字跟隨、傷害顯示、和miss效果的製作

這裡講一下類似於魔獸爭霸裡面的血條、傷害和miss效果的製作, 這個涉及到了NGUI裡面的HUDText,它是NGUI的擴充套件,有效的只有兩個指令碼。 其中一個是UIFollowTarget、另外一個是HUDText。 UIFollowTarget指令碼所在的物體在

android自定義notification實現進度功能

要建立一個自定義的Notification,可以使用RemoteViews。要定義自己的擴充套件訊息,首先要初始化一個RemoteViews物件,然後將它傳遞給Notification contentView欄位,再把PendingIntent傳遞給contentIntent