1. 程式人生 > >UGUI血條顯示

UGUI血條顯示

public class UGUI_HPShow : MonoBehaviour
{
    //Overly模式
    public bool isCamMode = true; //是否是Camera模式
    //Camera模式
    public Camera UICam; //depthOnly depth>MainCam.Depth UI層


    private RectTransform rectTransform;


    public Transform target;


    void Start()
    {
        //獲取血條的 RectTransform 元件
        rectTransform = GetComponent<RectTransform>();
        //獲取角色
        //target = GameObject.FindGameObjectWithTag("Role").transform;
    }


    void Update()
    {


        if (target == null || rectTransform == null)
        {
            return;
        }
        //將角色的3D世界座標轉換為 螢幕座標
        Vector3 targetScreenPosition = Camera.main.WorldToScreenPoint(target.position);


        targetScreenPosition.y += 50;
        //定義一個接收轉換為 UI  2D 世界座標的變數
        Vector3 followPosition;


        // 使用下面方法轉換
        // RectTransformUtility.ScreenPointToWorldPointInRectangle()
        // 引數1 血條的 RectTransform 元件;
        // 引數2 角色座標轉換的螢幕座標
        // 引數3 目標攝像機,Canvas的 Render Mode 引數型別設定為 Screen Space - Camera時需要寫攝像機引數
        //        本例 Canvas的 Render Mode 引數型別設定為 Screen Space - Overlay,在此將第三個引數設定為 null
        // 引數4 接收轉換後的座標,需要提前宣告一個 Vector3 引數




        if (isCamMode)
        {
            if (RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, targetScreenPosition, UICam, out followPosition))
            {
                //將血條的座標設定為 UI 2D 世界座標
                transform.position = followPosition;
            }
        }
        else
        {
            if (RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, targetScreenPosition, null, out followPosition))
            {
                //將血條的座標設定為 UI 2D 世界座標
                transform.position = followPosition;
            }
        }
    }




}

相關推薦

UGUI顯示

public class UGUI_HPShow : MonoBehaviour {     //Overly模式     public bool isCamMode = true; //是否是Camera模式     //Camera模式     public Camer

ugui

pda osi star nload csdn tar ans test col https://blog.csdn.net/u011484013/article/details/53069354 今天學習一下如何實現UGUI 2dUI跟隨3d物體移動的效果 創建cub

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

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

超級簡單的UGUI製作技巧

1.新建一個Plane 放置一個Cube 2.新增2個 Button 模擬血條 2.1 刪除2個Button中沒用的元件,比如Button(script)元件,實際上只用Image元件來顯示血量就可以 2.2 將兩個的位置關

UGUI製作怪物跟隨

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

Unity3D——使用UGUI為角色新增名字和

轉載http://www.jianshu.com/p/a9fd13594f18        學習Unity3D有一段時間了,龐大的U3D系統可能只學了一些皮毛。最近做東西時又要為怪物製作血條,但一時間竟然忘記了該怎麼弄,於是翻翻以前的專案,同時在這裡記下來,作為學習參考。

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指令碼所在的物體在

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

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

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

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

【NGUI】NGUI製作,當人物移出屏幕後不顯示,優化程式碼

using UnityEngine; using System.Collections; /// <summary> /// 指令碼功能:NGUI血條實現 /// 知識要點:NGUI,3D座標到2D座標的轉換 /// 建立時間:2015年6月29日 /// 新增

UGUI製作並跟隨角色

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

Unity的NGUI外掛的HUD Text外掛數值的顯示

原文取自:qq_32009641的部落格 以前沒接觸這個外掛時,做的小demo中實現怪物血條使用GUI繪製的 (就是雨鬆大大的方法,很經典 在這裡先謝過大大) 用這個外掛實現怪物血條只需簡單的幾部 方法直接封裝好的 直接用就好 該外掛必須是在安裝NGUI之後才

[UE4]用UMG方式實現Character頭頂顯示3D

用Canvas 純C++編碼方式繪製血條(2D血條)  例子演示的功能是:在一個Character的頭部上方顯示一個血條 1,新建一個widget藍圖來製作血條   2,開啟角色藍圖,在Components面板下新建一個Widget元件 3,還是在角色藍

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

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

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

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

[Shader]暗黑3效果2

program tla 2.0 read dcl fixed src xtu parent <1>效果圖 <2>源碼 Shader "UI/UI2"{ Properties { [PerRendererData] _MainTex(

Ubuntu 16.04安裝indicator-sysmonitor實現導航顯示上下行網速/CPU/內存使用率

mem cnblogs http sudo images ica cpu 上下 實現 安裝: sudo add-apt-repository ppa:fossfreedom/indicator-sysmonitor sudo apt-get update sudo

xutils工具上傳日誌文件--使用https並且帶進度顯示

throw muti inpu side ica nts app開發 stp pfile package logback.ecmapplication.cetcs.com.myapplication; import android.app.Activity; impor