UGUI 將2DUI和場景中的3d物體關聯,跟隨物體移動
專案中經常會用到 UI 和場景的物體關聯,之前的做法是將UI做成3D的,即將Canvas畫布的屬性 RenderMode 設定位WorldSpace。
但是這有一個缺點 攝像機移動或者攝像機縮放場景 ,導致UI字型會看不清。為了解決這個問題,就用到了遊戲裡的人物頭頂血條。
主要的關鍵點是:
1.將3D物體的世界位置轉換位螢幕座標位置 Camera.main.WorldToScreenPoint
2.將UI的RectTransform 設定轉換後的螢幕座標,可以這轉換後螢幕座標基礎上新增x,y的偏移量
public class HealthBar : MonoBehaviour {
public float xOffset;
public float yOffset;
public RectTransform recTransform;
void Update()
{
if (recTransform==null)
{
return;
}
Vector2 player2DPosition = Camera.main.WorldToScreenPoint(transform.position);
recTransform.position = player2DPosition + new Vector2(xOffset, yOffset);
//血條超出螢幕就不顯示
if (player2DPosition.x > Screen.width || player2DPosition.x < 0 || player2DPosition.y > Screen.height || player2DPosition.y < 0)
{
recTransform.gameObject.SetActive(false);
}
else
{
recTransform.gameObject.SetActive(true );
}
}
}
相關推薦
UGUI 將2DUI和場景中的3d物體關聯,跟隨物體移動
專案中經常會用到 UI 和場景的物體關聯,之前的做法是將UI做成3D的,即將Canvas畫布的屬性 RenderMode 設定位WorldSpace。 但是這有一個缺點 攝像機移動或者攝像機縮放場景
Unity3D中2DUI跟隨場景中3D物體
平面UI跟隨場景中的3D物體類似於血條的跟隨效果。 經過幾種方案的對比發現把3D物體的座標轉化為平面座標的方案是最行之有效的方法。 下面直接上程式碼 public class FollwScript
使用pscp命令將Windows和linux中檔案互相拷貝
window—>linux 首先,下載putty軟體,並可以在目錄中,找到pscp.exe檔案,我們可以通過這個軟體實現Windows和linux之間拷貝檔案。 將pscp.exe的路徑加入到系統環境變數Path中,這樣我們就可以在Windows的命令列
如何將Eclipse和MyEclipse中Web專案打成war包
war包即Web歸檔檔案,將Web專案打成war包可以直接拷貝到Web伺服器釋出目錄(例如Tomcat伺服器webapps目錄 ),當Tomcat啟動後該壓縮檔案自動解壓,war包方便了web工程的釋出,那麼在Eclipse中如何將Web專案打成war包呢?  
LR中的引數設定和場景虛擬使用者的關聯(sequential+Each occurrence)
sequentral + each occurrence:引數每取值一次,按順序更新,取值超出記錄條數時,回表引數的頭位置再次取值 指令碼:lr_eval_string({newparam});
LR中的引數設定和場景虛擬使用者的關聯(Random + each iteration|each occurrence|once)
指令碼(lr_eval_string({"newparam"}))迭代4次,虛擬使用者為4個,引數設定為16個,引數取值設為 : Random + each iteration: 每開始迭代一次,引數
LR中的引數設定和場景虛擬使用者的關聯(Same line as + 各種取值設定選項)
指令碼:lr_eval_string("{PamNew}); lr_eval_string("{pwd}"); 指令碼迭代4次,場景設定4個虛擬使用者: 在 parameter
LR中的引數設定和場景虛擬使用者的關聯(Unique+each iteration)
在LR中有:16個引數,迭代4次,有4個虛擬使用者: 如:lr_eveal_string({Newparam}): 引數取值:張一,張二,張三,張四,張五,張六,張七,張八,張九,張
設計一個演算法,刪除遞增有序連結串列中值大於mink且小於maxk的所有元素(mink和maxk是給定的兩個引數,其值可以和表中的元素相同,也可以不同)。
語言:C++ #include <iostream> using namespace std; typedef struct LNode { int data; LNode *next; }LNode,*LinkList; //建立連結串列 int CreateList(Li
獲取場景中的所有按鈕,並新增點選事件
void Start() {//初始化時 獲取 所有按鈕新增監聽 Addlisteningevent(); } public void Addlisteningevent() {//查詢所有按鈕 Button[] allObj =
輸入2個字串s1和s2,並拼接成一個新的字串,新字串中只包含s1和s2中所有小寫字母,並且按照字母從小到大排序
#include<stdio.h> #include <stdlib.h> #include<string.h> char *str_merge(char *s1,
使用sqoop將資料從hdfs中匯入mysql時,卡在INFO mapreduce.Job: map 100% reduce 0%的解決辦法
最近在將hdfs中已經處理好的資料匯入到mysql的時候遇到這麼一個現象,當任務執行到 INFO mapreduce.Job: map 100% reduce 0% mapreduce任務卡在map100% ,任何reduce不繼續執行。 總結了以下解決辦法: 一,如果沒
詳解html和thymeleaf中的相對路徑,解決springboot前臺頁面的相對路徑問題
一.問題 最近在使用springboot框架,眾所周知,該框架可以直接以jar的方式執行,在該方式執行的情況下,預設contextPath是/。在前臺頁面引用的時候,我是這樣寫相對路徑的: 後臺Req
eclipse中本地專案和svn中的專案關聯
首先要確定eclipse中安裝了svn外掛。 然後在“svn資源庫研究”透檢視中新增上專案的svn地址,也可以新增到專案在svn的上一級目錄。 在專案上點選右鍵 Team——》Share Project,選擇svn,下一步, 然後你就會驚奇的發現svn外掛已經找到並
python中例項物件新增方法的方式和類中新增類方法,靜態方法的方式
import types class Person(object): def __init__(self, newName, newAge): self.name = newName self.age = newAge def
給出一個2D板和字典中的單詞列表,找到棋盤上的所有單詞。每個單詞必須由順序相鄰單元格的字母構成。不能重複使用
本題源自leetcode 212 ----------------------------------------------------------------------- 思路: 構造一個Trie單詞查詢樹。然後用遞迴遍歷棋盤。找到所有的單詞。 程式碼: c
讀取深度快取中的深度值,並將其螢幕2D座標轉化為場景3D座標
mouse_x=LOWORD(lParam);//滑鼠的x座標 mouse_y=HIWORD(lParam);//滑鼠的y座標 glGetDoublev(GL_MODELVIEW_MATRIX, modelview);//檢視矩陣 glGetDoublev(GL_PROJECTION_MAT
使用SharedPreferences將姓名和年齡信息保存在文件中,並讀取信息
new sta text str @override this ket make and 第一個是XML文件: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:androi
10.16輸入一個字符串,內有數字和非數字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例如123放在num[0]中,456放在num[1]中……統計共有多少個整數,並輸出這些數。
tab lnp zip sm2 cuc ycm rds qt5 tft 10.16輸入一個字符串,內有數字和非數字字符,如: a123x456 17960? 302tab5876 將其中連續的數字作為一個整數,依次存放到一數組num中。例
golang 如何將imagemagick 和golang 打包到docker 環境中
upd 項目 free rec build ack 綜合 工作目錄 出現 公司最近開發了個項目,用到了imagemagick 和golang 環境,在我本地機上開發妥妥的,結果準備部署到線上環境的時候,出現了大坑,嘗試了無數次後,最後還是解決了,官方說有問題也不說清楚點,一