博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unity3d之进度条跟着游戏对象移动
阅读量:4561 次
发布时间:2019-06-08

本文共 987 字,大约阅读时间需要 3 分钟。

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

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

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

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

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

下面看看代码吧:

  

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

 

 

 

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

转载于:https://www.cnblogs.com/xiao-wei-wei/archive/2013/03/23/2977165.html

你可能感兴趣的文章
软件安装
查看>>
黑盒测试实践—第四天
查看>>
luogu P4448 [AHOI2018初中组]球球的排列
查看>>
[No000016C]做企业分析的三个重要工具
查看>>
win7每天出现taskeng.exe进程的解决方案
查看>>
c++:资源管理(RAII)、new/delete的使用、接口设计与声明、swap函数
查看>>
React Children
查看>>
大数据等最核心的关键技术:32个算法
查看>>
Maven多模块项目搭建
查看>>
redis列表list
查看>>
雷林鹏分享: C# 简介
查看>>
ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法
查看>>
实用类-<Math类常用>
查看>>
构建之法阅读笔记之四
查看>>
10.15习题2
查看>>
Windows Server 2008 R2 备份与恢复详细实例
查看>>
Ubuntu上kubeadm安装Kubernetes集群
查看>>
关于java学习中的一些易错点(基础篇)
查看>>
MFC的多国语言界面的实现
查看>>
四则运算个人项目 最终版
查看>>