unity怎么做bossunity 血条跟随,一条减得快一条减得慢

扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
unity 血条的另类制作-伤害减血加血自动回血,最简单教程,菜鸟必看。
本帖为抢楼帖,欢迎抢楼!&
4393/500排名<font color="#FF昨日变化2主题帖子积分
四处流浪, 积分 393, 距离下一级还需 107 积分
四处流浪, 积分 393, 距离下一级还需 107 积分
在线时间63 小时
看看都是怎样的东西,貌似很不错的呢
每日推荐:
9排名<font color="#FF昨日变化1主题帖子积分
在线时间1304 小时
unity 血条的另类制作-伤害减血加血自动回血,最简单教程,菜鸟必看
每日推荐:
4419/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 419, 距离下一级还需 81 积分
四处流浪, 积分 419, 距离下一级还需 81 积分
蛮牛币1278
在线时间73 小时
这个要看看
这个要看看
这个要看看
每日推荐:
4439/500排名<font color="#FF昨日变化主题帖子积分
四处流浪, 积分 439, 距离下一级还需 61 积分
四处流浪, 积分 439, 距离下一级还需 61 积分
蛮牛币1065
在线时间63 小时
{:104:}{:104:}{:104:}{:104:}{:104:}
每日推荐:
61152/1500排名<font color="#FF昨日变化主题帖子积分
蛮牛粉丝, 积分 1152, 距离下一级还需 348 积分
蛮牛粉丝, 积分 1152, 距离下一级还需 348 积分
蛮牛币2322
在线时间379 小时
qqqqqqqqqqqqqqqqqqqqqqqqqqaaa去啊啊啊
每日推荐:
2131/150排名<font color="#FF昨日变化3主题帖子积分
初来乍到, 积分 131, 距离下一级还需 19 积分
初来乍到, 积分 131, 距离下一级还需 19 积分
在线时间14 小时
支持自创教程 血条是很实用的内容
每日推荐:
5964/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 964, 距离下一级还需 36 积分
熟悉之中, 积分 964, 距离下一级还需 36 积分
蛮牛币2630
在线时间250 小时
的确是非常好的教程,不过楼主注意一下你这个方法比较耗资源
每日推荐:
7排名<font color="#FF昨日变化1主题帖子积分
在线时间1 小时
的确是非常好的教程,不过楼主注意一下你这个方法比较耗资源
谢谢提醒,我刚学unity2个星期不到,Update实时帧检测多应该就是耗资源的。能不能教教我个办法在这基础上解决太耗资源的问题?
每日推荐:
5964/1000排名<font color="#FF昨日变化主题帖子积分
熟悉之中, 积分 964, 距离下一级还需 36 积分
熟悉之中, 积分 964, 距离下一级还需 36 积分
蛮牛币2630
在线时间250 小时
谢谢提醒,我刚学unity2个星期不到,Update实时帧检测多应该就是耗资源的。能不能教教我个办法在这 ...
你的代码中有一句Apply()函数,就是这个函数耗资源,一般不会在脚本中改贴图像素的,简单的是两张图片叠上去,底色是黑色,上面是红色,只要改变红色图片长度就好了,或者用NGUI更简单
每日推荐:
7排名<font color="#FF昨日变化4主题帖子积分
在线时间56 小时
支持一个。。。。。。楼主辛苦了
每日推荐:
3237/300排名<font color="#FF昨日变化1主题帖子积分
偶尔光临, 积分 237, 距离下一级还需 63 积分
偶尔光临, 积分 237, 距离下一级还需 63 积分
在线时间43 小时
....................................
每日推荐:
73107/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 3107, 距离下一级还需 1893 积分
日久生情, 积分 3107, 距离下一级还需 1893 积分
蛮牛币2632
在线时间1025 小时
看我做的Poser 3D作品,美女图
每日推荐:
3204/300排名<font color="#FF昨日变化3主题帖子积分
偶尔光临, 积分 204, 距离下一级还需 96 积分
偶尔光临, 积分 204, 距离下一级还需 96 积分
在线时间15 小时
学习 。学习。。谢谢 分享。。。
每日推荐:
3284/300排名<font color="#FF昨日变化1主题帖子积分
偶尔光临, 积分 284, 距离下一级还需 16 积分
偶尔光临, 积分 284, 距离下一级还需 16 积分
蛮牛币1207
在线时间32 小时
Good good good good good good good good good good good
每日推荐:
7排名<font color="#FF昨日变化1主题帖子积分
在线时间1 小时
你的代码中有一句Apply()函数,就是这个函数耗资源,一般不会在脚本中改贴图像素的,简单的是两张图片叠上 ...
Apply() 这个问题我看到了,我自己先想办法解决看看,不行的时候再请教你,谢谢!
每日推荐:
游戏蛮牛给予质量较高、影响力较大的unity相关技术开发者的荣誉称号
社区QQ达人
使用QQ帐号登录论坛的用户扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
当前位置: &
查看: 6618|回复: 36
【如果我是面试官】系列(一)
本帖为抢楼帖,欢迎抢楼!&
5578/1000排名<font color="#FF昨日变化2主题帖子积分
熟悉之中, 积分 578, 距离下一级还需 422 积分
熟悉之中, 积分 578, 距离下一级还需 422 积分
在线时间80 小时
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
才可以下载或查看,没有帐号?
本帖最后由 admin 于
10:22 编辑
本来想写一个系列的,一半是抨击现在面试之水,要人之奸,用大哥的话说,要走新手是做螺丝钉和抹布用的。另一半是对出出学校的或者是自废武功转3d的朋友们提供一个比较有价值的参考。不过我时间实在仓促。没有保证,写一点算一点吧。
先识别一下,你到了公司会让你干什么:
1.UI(面试题会偏向NGUI等ui操作,会考到一些简单的排序算法,数据结构,处理思路等)
2.数据逻辑层(会考到数据结构的搭配,配置表的构造等)
3.游戏控制流程(会考到状态机的设计,与服务器协议的设计,以及少量lua或python脚本编写内容)
4.项目架构(主程内容。。你懂得。反正我还不够格面这个。。)
UI的没什么好说的,去了之后天天layout,毫无乐趣,但是吧,新手都得虐过一次,才可以。数据逻辑层,也就是统筹整个游戏的后台运算数据,依照网络模块给予的数据,维护整个数据基的稳定和swift。这个工作与unity基本无关,但是是必不可少的,一般简历上写过什么acm之类的,会让你搞这个吧。游戏控制流程,至此开始进入高级程序员的行列,你会接触很多unity相关的内容,比如技能释放,角色换装,角色状态控制等等有趣的内容,通常如果你不是自废武功转3d或者再原来公司本来就干这个,只是干腻了跳槽而已,是不会让新手干这个的。项目架构这个略掉,我没资格谈这个。
说道这里本来应该结束废话的,但是可能引导大家对UI有了新的看法)——它不值得去做。其实不是的,UI这东西虽然无聊,但是是新手接触引擎,熟悉代码的最佳通道,同时也是所有公司愿意开放给各位新手的一个免费培训通道吧,因为UI代码很不值钱,你走了谁都能接上,所以他们愿意用新手。
下面来谈谈,如果我时面试出卷子的那个【sb】,我会问什么。这些问题都是项目中坑过我,害过我,让我哭让我痛得问题。
1.你觉得为什么UI摄像机和场景摄像机能协同工作,而且工作的这么尽如人意呢?
答案:UI摄像机和场景摄像机分别属于两个渲染层(Layer),所以它们之间的渲染互不干扰。它们工作得尽如人意(没有发生先后错乱,UI永远位于场景之上层)的原因就是因为摄像机深度(depth)控制的好。
2.你觉得怎么防止UI控件被点穿(如何过滤掉点击事件)。
答案:使用一个可渲染的物体或者pannel,绑定boxcollider组件即可。如果你单用一个不可渲染的物体(这里点cao一下UIwiget),即使设定了大小和boxcollider,也是无法屏蔽的。(坑在这里)。
3.关于UIGrid问题
答案:我基本不会使用UIGrid,我会直接在代码里设置localpos等等。(这个控件是很坑的)。
4.你对UI功能模块之间相互通信有什么好看法。(或者问成Broadcast和sendMes的看法)
(这道题目是我被面的一道题目,相当精髓,后来问我这道题目的人成为了我得同事,多谢他不计较我当时回答的很操蛋,而且现在他仍旧如老师一般帮助我。)
答案:UI模块之间尽量解耦合,使用BroadCast机智或者delegate机智。由于Unity自身的BroadCast和SendMsg效率是很低的,(务必百度一下这俩的区别,都有,我懒得复制粘贴了。)所以推荐使用NGUI自带的那个消息机智。具体的使用方法,下载任何一款NGUI3.5左右的版本,都能清楚的看到。更或者自己实现一个msgerpool也可以,思路是使用泛型写法+字典+delegate,效率也很高。
5.众里寻他千百度,你怎么样能迅速找到某一个UI控件。
答案:分情况处理,这是一个优化策略的题目。首先如果这个控件我在awake的时候能知道,那么我会把它存成一个private变量,代码中使用的时候直接使用即可。如果不行,这个子物体是动态生成的(他可能有或者没有),那尽量使用FindChild,得到之后加以判断。如果不得不全局找一个东西(比如找到角色物体),才会用Find。
6.你对遮挡关系有什么好的策略。
答案:这种问题的诞生是由于Ngui2采用了一种zorder+depth方式处理遮挡关系造成的,已经在ngui3里完全屏蔽掉了。只要维护depth即可。
7.你对屏幕适配有什么好主意。
答案:屏幕适配根本没有完美的解决方案,如果是全屏模块,那么锁定目标机型,将目标机型做成满屏,其他机型充满宽或高后留白(也叫留黑边)处理即可。如果是屏幕模块(比如战斗界面,主城界面等等,你会看到下边的场景那种),需要采用Anchor来解决。NGUI2 Anchor有独立的控件,NGUI3Anchor已经被搞到Wighet和Pannel中,这个自己下去好好研究研究吧。
UI的就这么多,如果问了,你回答的不错,想感谢我,请多来蛮牛看看~
数据逻辑层方面
1.请简述一下你对数据结构的选取有什么看法
答案:批量取,经常遍历的数据,会采取List来存储,经常查找的会采取字典存储。同时如果多个字段比较重要(比如一份配置表经常会id索引以及name索引),我会开辟多个字典进行存储,牺牲空间换取逆向查找效率。
2.请把这份配置文件解析成你想要的数据结构,给我看看
答案:这份配置文件如果是xml或者json,那么它肯定会被先转换成HashTable,然后你根据配置表的可能拥有的字段(比如有一个物体,它有“使用后增加体力”这个字段,有的没有,你要用ContainsKey来检测是否有字段),挨个拆出并且存入你想要的数据结构中,如果你想要的数据结构是字典,需要注意的是在加入key的时候,应该询问是否包含了这个key,如果包含,则修改,如果不包含,则添加,,大家智力都没有问题。。试一试就会很清楚。
如果这个配置文件为excell,那么它将会被转化成一个string数组,数组的每一个元素,都是一个字段数据,按照配置表的顺序挨个取出来存入你得数据结构中即可。
3.请简述一下C#中,结构体和class的用法
(再次鸣谢面试我得那位同事,容忍了我回答的很烂)
答案:如果你是自废武功,从C++转到C#,这俩东西会让你大跌眼镜。C++中结构体和类几乎没有区别。C#中,结构体属于对象,而类属于引用,结构体不需要new出来,类必须new出来。这是个巨大的坑。比如你搞了一个结构体链表:
List&structA& structtestlist = new List&structA&();
然后给这个链表中注入数据,注入数据之后,你想更改其中的一个链节,你是这么做得
structA structlink = structtestlist[2];
structlink.data = 3;
这样做,根本没有修改到structtestlist中得值!因为声明structlink那一句话,是个对象,并不是指向那个(链节)的“指针”!
但是如果是class,你这么做毫无烦恼。
这个东西建议大家试试。很坑比。
4.接受到网络发来的数据,你会怎么办
答案:着手做项目之前,会搞一个txt,客户端内部消息协议罗列到上边,这个消息协议是网络协议的处理映射。比如网络协议告诉我,“因为你刚才吃了一个药,吃成功了,现在你得给我刷新,让用户大大能够看到”,我就必须通知所牵连的模块:“你得数据被刷新了,再老地方重新取一次,刷新界面给用户大大看”。牵连到得模块,比如就是战斗UI,它要把血条给加上去,还有character信息的数据基,更改当前血量数据等等。这些模块收到协议之后,改变自己的值:比如UI就会从数据基里取,而数据基会从网络包或者配置表里取等等。
游戏控制流程:
1.你对资源加载有什么看法。
答案:首先资源加载这个东西,就是老大难,用户一遍遍的吐槽加载的慢,但是谁也不愿意让加载的少导致后边必须加载而变得卡顿。对于比较耗费的加载,属于IO操作,在游戏刚登陆的时候,进行初始化加载。强制加载一些重要模块,比如登陆窗口(用户输入用户名密码的地方)等等。选择性加载一些必要的模块:如果这人需要新手引导,则加载新手引导模块,否则不加载,反之亦然。这些用户一定会用(或者一定不用)的模块,在登陆时候处理好。对于应用模块:比如我打开一个很庞大的UI,这个怎么加载,如果这个模块很吸金,用户用得概率很大,那么必须在登陆时加载,否则那只能用户打开的时候加载了,加载的时候要转圈提示用户。。关于场景加载更加的莫衷一是。既然大家被面到这一步了,相信也不需要我废话了,一个程序有一个程序的活法不是吗?
2.请给我设计一个状态机,完成一个简单的xxxx情景。
答:状态机并不是单纯的switch结构,如果你是新手,你说switch我可以容忍,如果你干了好些年x,然后想自废武功搞了,再说switch就直接pass了。可以去搜一下相关资料,水不是很深,但篇幅有限。大概意思就是,每个对象都维护自己的状态机,状态机的状态改变,靠状态触发器。所有的状态(不是状态机。。状态机是一个主管它负责调度各种状态,状态是各种。。。状态。。哎不可言传啊。。),都会重写begin,excute,end这三个函数,本来敲了一大堆。。发现说也说不清楚,大家自己去看看吧还是。毕竟这只提供一种面试方式而已。。
3.角色换装,技能释放你会怎么做。
角色换装这个,各有各的活法,尸块换装,纸娃娃贴图等,这个莫衷一是,可以自己百度去,找一个自己喜欢的实现一下试试吧。技能释放水是很深的,这个能答就答,答不上来也不丢人。估计被面这些的,肯定都比我强,也就不需要我比比什么的了。。
4.动态更新有什么看法。
答:这个题牵扯到assetbundle问题。其中assetbundle面对资源的处理方法是截然不同的。比如对于prefab,可以很好的搞上去,对于二进制文件,也能搞得不错,但是对于代码这个东西,往往是大家争论的焦点——毕竟代码这个东西,iosAppStore是肯定不让你搞得,因为unity本身也不受苹果待见,所以它怕被秒杀,也不给用户提供更新脚本的功能。这就导致比如你更新了一个prefab,没法使用它上边挂的脚本!那更新有个jb用。。。提供一下解决代码更新的一点看法,现在我再尝试搞这一块,一孔之见,轻喷
安卓上可以使用unityreflaction机制进行编译后代码的动态更新,这个广大google开发者肯定是知道的。但是问题就是,这种机制会导致很庞大的开发成本——从代码层面完全跟ios搞了个大分支,如果是想跨平台的,这恐怕是不可取的吧。。
第二就是可以采用lua脚本无缝编写方法,因为unity脚本并不是真正的脚本,真正脚本的威力是它可以动态编译到宿主上,这点太牛逼了。lua就是这种牛逼脚本。所以你可以无缝换lua。。。这个没问题。所以立项就应该想好是lua还是什么的。。别回来做了一半,想改lua了,那就sb了。。
这两种机制在App Store上肯定是不让你搞的,第一种,越狱平台也不让搞,因为unity不让你搞。。
其实还有神秘的第三种做法,这第三种做法,就不分享了,毕竟还没有实验,说出来怕坑杀大家。。
不定期会更新这个帖子,时而一个月,时而半年的。。。大家见谅,希望对大家有帮助
希望大家支持蛮牛。
unity 3d中的血条;unity ui存为unity如何实现分屏;unity后台通信;unity 血条unity打开是黑屏;unity lua写;unity哪个版本最稳定;unity 移动 卡顿;unity挂脚本到物体;unity 历字典;unity是干什么的;unity 3d血条;unity 将ui存为unity 左右分屏;unity分屏;unity 与后台通信;unity ngui 血条;unity 黑屏;unity中写unity稳定的版本;unity 稳定版本;unity 5 稳定版本;unity哪个版本稳定;unity最稳定版本;unity 卡顿;unity 使用unity把脚本挂在物体上;unity 字典;unity 干什么
蛮牛币 +50
非常好,都是能学习的地方
平易近人,通俗易懂
[]: 一个袋子砸在了 jackson1991123 头上,jackson1991123 赚了 1
本帖被以下淘专辑推荐:
& |主题: 2, 订阅: 23
每日推荐:
5578/1000排名<font color="#FF昨日变化2主题帖子积分
熟悉之中, 积分 578, 距离下一级还需 422 积分
熟悉之中, 积分 578, 距离下一级还需 422 积分
在线时间80 小时
另外还有一些搞渲染流程的东西,暂时没时间折腾了,这东西如果没有基础相当晦涩难懂,再加上我本人也不怎么熟,暂时不贻笑大方了哈哈哈
每日推荐:
71539/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 1539, 距离下一级还需 3461 积分
日久生情, 积分 1539, 距离下一级还需 3461 积分
蛮牛币2361
在线时间327 小时
对楼主的第三种动态更新比较感兴趣~~
楼主说了不少有用的干货啊
每日推荐:
73823/5000排名29昨日变化主题帖子积分
日久生情, 积分 3823, 距离下一级还需 1177 积分
日久生情, 积分 3823, 距离下一级还需 1177 积分
蛮牛币8376
在线时间893 小时
楼主大才啊
[]: boqiyang 发帖时在路边捡到 1
蛮牛币,偷偷放进了口袋.
每日推荐:
72150/5000排名<font color="#FF昨日变化主题帖子积分
日久生情, 积分 2150, 距离下一级还需 2850 积分
日久生情, 积分 2150, 距离下一级还需 2850 积分
蛮牛币4231
在线时间538 小时
很不错,值得学习。。。。。。
每日推荐:
4478/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 478, 距离下一级还需 22 积分
四处流浪, 积分 478, 距离下一级还需 22 积分
蛮牛币1562
在线时间75 小时
楼主分享的很有价值啊,不知道2dx面试啥的,想转2dx要多注意哪方面的,往楼主指点啊
[]: 胡萝卜 发帖时在路边捡到 1
蛮牛币,偷偷放进了口袋.
每日推荐:
4357/500排名<font color="#FF昨日变化5主题帖子积分
四处流浪, 积分 357, 距离下一级还需 143 积分
四处流浪, 积分 357, 距离下一级还需 143 积分
在线时间46 小时
好利弊啊,赞10086
每日推荐:
5729/1000排名<font color="#FF昨日变化1主题帖子积分
熟悉之中, 积分 729, 距离下一级还需 271 积分
熟悉之中, 积分 729, 距离下一级还需 271 积分
蛮牛币3648
在线时间129 小时
嗯,&&楼主说的不错& & &&
每日推荐:
71855/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 1855, 距离下一级还需 3145 积分
日久生情, 积分 1855, 距离下一级还需 3145 积分
在线时间407 小时
也就是说,unity新手,,一般都会从ui开始的
每日推荐:
2142/150排名<font color="#FF昨日变化23主题帖子积分
初来乍到, 积分 142, 距离下一级还需 8 积分
初来乍到, 积分 142, 距离下一级还需 8 积分
在线时间72 小时
支持............................
每日推荐:
4384/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 384, 距离下一级还需 116 积分
四处流浪, 积分 384, 距离下一级还需 116 积分
在线时间82 小时
32个赞。。。。。。。。。。。
每日推荐:
4318/500排名<font color="#FF昨日变化1主题帖子积分
四处流浪, 积分 318, 距离下一级还需 182 积分
四处流浪, 积分 318, 距离下一级还需 182 积分
在线时间110 小时
灰常不错!!!
每日推荐:
61165/1500排名<font color="#FF昨日变化主题帖子积分
蛮牛粉丝, 积分 1165, 距离下一级还需 335 积分
蛮牛粉丝, 积分 1165, 距离下一级还需 335 积分
蛮牛币2963
在线时间204 小时
先收藏 回头再看!!!!
每日推荐:
3248/300排名<font color="#FF昨日变化15主题帖子积分
偶尔光临, 积分 248, 距离下一级还需 52 积分
偶尔光临, 积分 248, 距离下一级还需 52 积分
蛮牛币1378
在线时间86 小时
实实在在的干货!
谢谢楼主分享!
每日推荐:
72252/5000排名<font color="#FF昨日变化1主题帖子积分
日久生情, 积分 2252, 距离下一级还需 2748 积分
日久生情, 积分 2252, 距离下一级还需 2748 积分
蛮牛币4175
在线时间561 小时
挺好的文章.................
每日推荐:
社区QQ达人
使用QQ帐号登录论坛的用户
游戏蛮牛QQ群会员
加入游戏蛮牛官方QQ群
在“新人报到 ”版块发过自己的照片
连续签到30天
购买游戏蛮牛书籍用UGUI做个屏幕血条,单击减血,求大神指教【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:75,743贴子:
用UGUI做个屏幕血条,单击减血,求大神指教收藏
[火星时代],专业研发unity3d培训课程,贴合业界需求!高薪就业!火星时代-U3D大师的摇篮!
在线等大神回复
这不是很简单吗,思路都写在那了,触发单击事件时更改红色血条Image组件的FillAmount,然后开一个新的协程里面放个循环条件不断递减/增加黄色血条的FillA
血条渐变用插值运算。
明天帮你写一个试试,你如果能等的话,明早八点起来看,我也是新手哦
给黄色的加个计时器刷新就好
登录百度帐号推荐应用扫一扫,访问微社区
后使用快捷导航没有帐号?
签到成功!您今天第{todayrank}个签到,签到排名竞争激烈,记得每天都来签到哦!已连续签到:{constant}天,累计签到:{days}天
Unity5.4.1:实现血量流失,UGUI计分,随机实例化,导航简单运用。 ...
& & & 从刚学习C#打出"Hello,World",到打出九九乘法表,金字塔等等到现在,学习程序这么长时间了,从小白到现在刚刚半只脚入门,感叹于程序的高深,也同样是很欣慰自己的成长。深感以后的路很长,仍需继续努力。& & & 今天做一个最基础的塔防,实现血量流失,利用UGUI实现计分。& & & & & & & &首先建立一个3D项目,取名为Tower defence& & & & & & &一:导航& & & & & & & & &创建一个Plane,作为实例化出的怪物可走区域,位置归0,并整体放大4倍;然后建立一个Cube,作为炮塔,取名为turret,方法2倍,坐标为(0,1,0)。& & & & & & & & &创建一个Sphere,作为怪物,取名为monster,并拖为预制体。然后为monster添加代码,代码如下:[code]csharpcode:using UnityE
using System.C
public class Nav_Move : MonoBehaviour {
public GameObject Nav_
NavMeshAgent N
// Use this for initialization
void Start () {
Navmeshagent = GetComponent&NavMeshAgent&();
// Update is called once per frame
void Update () {
Navmeshagent.SetDestination(Nav_arrive.transform.position);//设置最终要到达的物体的位置
} &&二、随机实例化为turret添加代码如下:[code]csharpcode:using UnityE
using System.C
public class Ins_monster : MonoBehaviour {
public GameObject ins_
// Use this for initialization
void Start () {
float X = Random.Range(-20,20);//随机数-20到20
float Z = Random.Range(-20, 20);
Instantiate(ins_monster, new Vector3(X, 0, Z), Quaternion.identity);
} 接下来就让怪物碰到炮塔消失然后随机实例化,那么补充代码:[code]csharpcode:using UnityE
using System.C
public class Ins_monster : MonoBehaviour {
public GameObject ins_
// Use this for initialization
void Start () {
float X = Random.Range(-20,20);
float Z = Random.Range(-20, 20);
Instantiate(ins_monster, new Vector3(X, 0, Z), Quaternion.identity);
// Update is called once per frame
void OnCollisionEnter(Collision col)
if(col.collider.tag == "monster")
Destroy(col.collider.gameObject);
float X = Random.Range(-20, 20);
float Z = Random.Range(-20, 20);
Instantiate(ins_monster, new Vector3(X, 0, Z), Quaternion.identity);
} 三、血量流失:&创建一个Cube,命名为HP,将它拖到turret的下面,调整位置和大小,大致效果如下:& 然后为它添加代码:[code]csharpcode:using UnityE
using System.C
using UnityEngine.UI;
public class HP : MonoBehaviour
public Texture2D Hp_P
public static float Hp;
float Hp_Max = 100;
// Use this for initialization
void Start()
Hp_Photo = new Texture2D(100, 100);
Hp_Photo.wrapMode = TextureWrapMode.C //覆盖Cube为T
// Update is called once per frame
void Update()
var Hp_ChangDu = Hp / Hp_Max * Hp_Photo. //血条的长度为目前剩余的HP除以满血的值 ,这个比例乘以Texture的宽度,显示在Cube上
for (var x = 0; x & Hp_Photo. x++)
for (var y = 0; y & Hp_Photo. y++)
if (x & Hp_ChangDu)
Hp_Photo.SetPixel(x, y, Color.red); //设置Texture为2D图片,让剩余血量显示为红色
else Hp_Photo.SetPixel(x, y, Color.black);//让减少的血量显示为黑色
Hp_Photo.Apply();
gameObject.GetComponent&Renderer&().material.mainTexture = Hp_P
} &这样实现了血量显示在Cube上,然后为turret添加代码,让怪物碰到炮塔消失,turret掉血,代码如下:[code]csharpcode:using UnityE
using System.C
public class HP_decrease : MonoBehaviour
void OnCollisionEnter(Collision col)
if(col.collider.tag == "monster")
if (HP.Hp & 0)
HP.Hp -= 10;
} 四、射线碰撞和UGUI计分首先创建一个Text,命名为Score& 然后为摄像机添加代码,让它打出射线,实现点击怪物,怪物消失并实现分数增加,代码如下:[code]csharpcode:using UnityE
using System.C
using UnityEngine.UI;
public class Ray_Hit_Score : MonoBehaviour
public Text Text_S
public GameObject monster_
// Use this for initialization
void Start()
score = 0;
Text_Score.text = "Score:" + score.ToString(); //在Text显示的字符串
// Update is called once per frame
void Update()
if(Input.GetMouseButtonDown(0))
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //打出一条射线,从摄像机到鼠标点击的位置
if(Physics.Raycast(ray,out info)) // 如果射线有碰撞
if (info.collider.tag == "monster")
Destroy(info.collider.gameObject);//销毁射线碰到的物体
float X = Random.Range(-20, 20);
float Z = Random.Range(-20, 20);
Instantiate(monster_instiate, new Vector3(X, 0, Z), Quaternion.identity);
score += 10;
Text_Score.text = "Score:" + score.ToString();
} &今天就写到这里了,以后会继续写自己做出的东西。
作者的其他最新博客
评论 ( 个评论)}

我要回帖

更多关于 unity 头顶血条 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信