Unity3D之进度条跟着游戏对象移动

今天遇到一个很困扰我的问题,我想把敌人给预制,并且进度条一起预制,但是发现不能实例化,且连绑定都不行,哎~~~~明天再解决吧,今天就只能说说进度条和游戏对象的移动了。

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

1.把物体的世界坐标转化成屏幕坐标,用WorldToScreenPoint()函数,该函数的用法我的上一篇转载的文章里面写的很清楚,不懂就可以去看看。

2.因为物体转成的屏幕坐标是左下角是(0,0),而iGUI控件的坐标是左上角为(0,0);所以用物体的屏幕坐标表示进度条的坐标的话还得有一点转化,因为X轴不变,我们就只用考虑Y轴了,我的方法是:进度条的y=Screen.height - 物体屏幕坐标的y;

3.iGUI的控件位置如果变化,记得要刷新哦,要不然你不能看到进度条移动的,用函数refreshRect();

下面看看代码吧:

var screenpos:Vector3=Camera.main.WorldToScreenPoint(transform.position);   enemyprogressbar.positionAndSize.x=screenpos.x;   enemyprogressbar.positionAndSize.y=Screen.height-screenpos.y;    enemyprogressbar.refreshRect();//刷新进度条的屏幕坐标位置,如果没有refreshRect,进度条将不移动  

虽说只有几行代码,但是我好累哦~~~~~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://127.0.0.1/wyyfwz.html