1. 程式人生 > >unity3D製作血條跟隨的研究

unity3D製作血條跟隨的研究

在製作遊戲的時候都會用到血條,尤其RPG遊戲,那麼這個怎麼製作呢?

第一種NGUI製作,這裡要引入NGUI HUD Text ,這是最簡單的方法。製作一個slider給其新增指令碼Follow Target如下圖:


我們給cube頭上設定一個空物體,這樣做是為了不讓血條裡cube太近。

這裡對應Target就是我們要設定血條跟隨的目標物體,因為NGUI下的camera只是渲染UI,所以下面的GameCamera就是工程的Main Camera。把UI下的camera拖過來。執行,移動cube,這樣就可以達到血條跟隨了。

那下面的Disable if Invisible什麼意思呢?

意思是當超出視野的時候血條是否渲染。一般情況勾上對效能有好處。

第二種方法,GUI畫出血條

using UnityEngine;
using System.Collections;
 
public class NPC : MonoBehaviour {
 
	//主攝像機物件
	private Camera camera;
	//NPC名稱
	private string name = "學者1";
 
	//主角物件
	GameObject hero;
	//NPC模型高度
	float npcHeight;
	//紅色血條貼圖
	public Texture2D blood_red;
	//黑色血條貼圖
	public Texture2D blood_black;
    //預設NPC血值
	private int HP = 100;
 
	void Start ()
	{
		//根據Tag得到主角物件
		hero = GameObject.FindGameObjectWithTag("Player");
		//得到攝像機物件
		camera = Camera.main;
 
		//註解1
		//得到模型原始高度
		float size_y = collider.bounds.size.y;
		//得到模型縮放比例
		float scal_y = transform.localScale.y;
		//它們的乘積就是高度
		npcHeight = (size_y *scal_y) ;
	}
	void Update ()
	{
		//保持NPC一直面朝主角
		transform.LookAt(hero.transform);
	}
 
	void OnGUI()
	{
		//得到NPC頭頂在3D世界中的座標
		//預設NPC座標點在腳底下,所以這裡加上npcHeight它模型的高度即可
		Vector3 worldPosition = new Vector3 (transform.position.x , transform.position.y + npcHeight,transform.position.z);
		//根據NPC頭頂的3D座標換算成它在2D螢幕中的座標
		Vector2 position = camera.WorldToScreenPoint (worldPosition);
		//得到真實NPC頭頂的2D座標
		position = new Vector2 (position.x, Screen.height - position.y);
		//註解2
		//計算出血條的寬高
		Vector2 bloodSize = GUI.skin.label.CalcSize (new GUIContent(blood_red));
 
		//通過血值計算紅色血條顯示區域
		int blood_width = blood_red.width * HP/100;
		//先繪製黑色血條
		GUI.DrawTexture(new Rect(position.x - (bloodSize.x/2),position.y - bloodSize.y ,bloodSize.x,bloodSize.y),blood_black);
		//在繪製紅色血條
		GUI.DrawTexture(new Rect(position.x - (bloodSize.x/2),position.y - bloodSize.y ,blood_width,bloodSize.y),blood_red);
 
		//註解3
		//計算NPC名稱的寬高
		Vector2 nameSize = GUI.skin.label.CalcSize (new GUIContent(name));
		//設定顯示顏色為黃色
		GUI.color  = Color.yellow;
		//繪製NPC名稱
		GUI.Label(new Rect(position.x - (nameSize.x/2),position.y - nameSize.y - bloodSize.y ,nameSize.x,nameSize.y), name);
 
	}
這裡程式碼來自雨鬆部落格,引入學習,將指令碼掛在目標任務頭上,PS兩張血條,掛上,就可以做出血條跟隨。

第三種方法UGUI,這裡主要涉及到座標的轉化,這個以後部落格裡總結吧。。。

相關推薦

unity3D製作跟隨研究

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

UGUI製作怪物跟隨

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

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

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

Unity3D的NGUI實現跟隨功能

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

UGUI製作跟隨角色

最簡單的一種方式——就是在對應的player的遊戲物件建立Canvas/進而建立Silder(有個坑,建議先行建立好Canvas(先調整引數)/Slider後)整體縮放Canvas大小到需要的位置即可,不然再該畫布下的內容會錯亂,無法正常顯示下面就是引數: 後續再給出專案原

Unity3D 人形製作小知識

這幾天用Unity3D做個射擊小遊戲,想做個人形的血條,百思不得其解,後來問了網上的牛牛們,解決了,其實挺簡單的,GUI裡面有個函式DrawTextureWithTexCoords就可以實現圖片的裁剪,很方便,裁剪之後,相信大家就都會操作了,話不多說,貼上程式碼與截圖效果

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

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

Unity3DRPG人物頭頂跟隨

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

Unity外掛NGUI製作--HUD的基本使用

一.利用NGUI製作 血條。 1.在2d場景中 先拖一個BG進去。然後建立一個 sprite。修改名字為LifeBar. 在inspector面板中 uisprite屬性值。如下: 2.在lifebar下建立一個sprite,用於當做血的顯示。 屬性修改同上。把顏色

Unity開發:跟隨的實現

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

unity3d製作弧形,魔

第一步,我們需要先準備好一張弧形素材圖片資源: 第二步,把該資源在unity中按照如下設定: 第三步,在unity中建立一個image,並且把資源拖給該image,就變為如下所示 需要注意點選一下set native size,圖片才會顯示真實大小 第四步,給該圖片新增一

Unity3d NGUI的使用(五)(UISprite&UISlider製作彩色

使用NGUI可以製做出彩色角色血條,載入進度條 製作血條時,可以根據血的多少顯示不同的顏色,可以對UISider與UILabel進行簡單的封裝 UISprite:NGUI精靈圖片元件 Atlas

Unity3D學習之(製作以及聲音的新增)

歡迎大家光臨我的部落格!知識點:    1、為了讓敵人和主角保持一定的距離,我們運用的是Vector3.Distance( )方法,Distance這個方法代表了兩點之間的距離,呼叫這個方法可以讓敵方在一定距離之內追蹤我的位置。    2、接下來是血條的製作,首先這個用到了G

unity3d學習筆記(十九)--ngui製作人物頭頂的頭像和

本系列文章由Aimar_Johnny編寫,歡迎轉載,轉載請標明出處,謝謝。 http://blog.csdn.net/lzhq1982/article/details/18793479 先上張圖,自己做的一個demo。 這裡的人物頭像和血條是在3d世界生成的,所以

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

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

Unity3d 三種製作

方法一:(推薦) 結果:血條跟隨目標物體移動,血條一直面向攝像機 步驟一: 1.製作一個血條(Image)的預設體; 2.在Canvas 中新增一個Plane,作為血條的父物體; 3.(1,2)準備工作做完了,思路:在生成遊戲物體時,生成血條,把遊戲物體的3D座標轉換為螢

Unity3D---使用GUI實現製作

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

簡單UI的製作以及跟隨物體

emmmmm,記錄一下Unity的學習內容。    在Unity中製作一個簡單的血條UI,要求的內容是能夠跟隨物體移動並且擁有距離感。本次製作使用UI裡的Slider將Slider製作好了以後將Canvas的Render Mode如下設定為 World space編寫好指令碼

NGUI研究之3D模型坐標轉2D屏幕坐標-

uic bject blank orm 組成 自己 index lan rac ?? 剛好今天有朋友問我,比較典型的樣例就是遊戲裏面人物的血條。原理非常easy就是把3D點換算成2D的點。可是因為NGUI自身是3D所以我們須要先把NGUI下的點轉成2D點。然後在把他轉成

人物製作

1.建立一個Canvas,Render Mode設定為World Space(遊戲裡面實際的大小) 2.canvas的大小改為一般的血條大小即可,放在人物的頭頂,canvas要拖放到角色的子層,在canvas裡面建立一個Image,大小和canvas一樣即可。。 3.Source Ima