今天遇到一个很困扰我的问题,我想把敌人给预制,并且进度条一起预制,但是发现不能实例化,且连绑定都不行,哎~~~~明天再解决吧,今天就只能说说进度条和游戏对象的移动了。
注意:以下操作是用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,进度条将不移动虽说只有几行代码,但是我好累哦~~~~~