歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Unity3D之進度條跟著游戲對象移動

今天遇到一個很困擾我的問題,我想把敵人給預制,並且進度條一起預制,但是發現不能實例化,且連綁定都不行,哎~~~~明天再解決吧,今天就只能說說進度條和游戲對象的移動了。

注意:以下操作是用iGUI做的噢~~~~

1.把物體的世界坐標轉化成屏幕坐標,用WorldToScreenPoint()函數,該函數的用法我的上一篇轉載的文章裡面寫的很清楚,不懂就可以去看看。

2.因為物體轉成的屏幕坐標是左下角是(0,0),而iGUI控件的坐標是左上角為(0,0);所以用物體的屏幕坐標表示進度條的坐標的話還得有一點轉化,因為X軸不變,我們就只用考慮Y軸了,我的方法是:進度條的y=Screen.height - 物體屏幕坐標的y;

3.iGUI的控件位置如果變化,記得要刷新哦,要不然你不能看到進度條移動的,用函數refreshRect();

下面看看代碼吧:

  1. var screenpos:Vector3=Camera.main.WorldToScreenPoint(transform.position);  
  2. enemyprogressbar.positionAndSize.x=screenpos.x;  
  3. enemyprogressbar.positionAndSize.y=Screen.height-screenpos.y;   
  4. enemyprogressbar.refreshRect();//刷新進度條的屏幕坐標位置,如果沒有refreshRect,進度條將不移動  

雖說只有幾行代碼,但是我好累哦~~~~~

Copyright © Linux教程網 All Rights Reserved