【译】如何制作生命条

发表于2016-02-19
评论0 1.3k浏览

如何制作生命条


  前段时间“完整统一开发者课程”的一个奖金讲座,谈及了生命条的预制创作,并打算出版发布。虽然我能够发布我的作品,但我或许并不能够成功发表我的作品,可能是因为它太容易了。然而,通过这项任务我还是学到了很多东西,包括其中一个关键的事情,也就是我把他用在即将到来的还未命名的比赛,你可以在我的“谷歌集团KD7UIY”看到更多有关内容。

 

我有一个想法,我想有一个透明的背景,一个自定义的前景,拥有选择颜色的能力,并自定义大小。然后我开始思考有没有其他相关的项目可以使用预制的管理。最好还是把生命值脚本加进去,这将更易于管理。我选择了与格里奇·加登合作,因为这似乎是最合适不过的,我可以很容易地使用任何其他项目。

在僵尸逃亡项目中,我们获得了广泛的认可。这似乎是使该项目更简单的方法。我建立了一个次层结构,目的是建立在玩家之间传递信息的松散耦合系统。由于玩家数量不足,一则广播消息并没有十分密集的资源。


                    


接下来是原型脚本。正如前文提到的,除了生命条脚本外,我想要使用以前使用过的生命值脚本。我希望能够设置多种颜色,一个用于前景和另一个用于背景。我的面板如图所



对我来说最大的挑战是如何加入颜色。我决定在运行时使用2D纹理,什么是2d文理呢,下面举个例子。比如纹理是1像素,这意味着当你将它应用到对象时候,对象将呈现一个颜色。很享受研究这种纹理,可能是未来代码做出的纹理。


1
2
3
4
mainTexture = new Texture2D(1, 1);
                                               mainTexture.SetPixel(0, 0, mainColor);
                                               mainTexture.wrapMode = TextureWrapMode.Repeat;
                                               mainTexture.Apply();


有了纹理,你只需要将它连接到SpriteRenderer组件,操作如下:


        

1
2
3
Rect unit = new Rect(0, 0, 1, 1);
                                  SpriteRenderer sr = gameObject.GetComponent();
                                  sr.sprite = Sprite.Create(backgroundTexture, unit, Vector3.zero);

除此之外,我先画了背景,然后制作前景。最后我更新了基于生命值的生命百分比,确保该值处在0与1之间。

为了通知玩家他的游戏人物已经死亡,我使用SendMessageUpwards("Die")在画面加入了“死亡”的信息。通过BroadcastMessage ("SubtractHealth",10)显示“生命值减少10”,玩家也能够获悉他正在减少的血量。之后我做了一些测试和修改,制作了最终了版本,我还打算将它用于其它用途。


关于作者:

本·皮尔森是业余无线电爱好者博客KD7UIY的作者以及谷歌游戏、应用开发者,他计划在那里发表一些由gamedev.tv带来灵感的游戏。他从小就是程序员,最近才开始从事游戏编程。他已经完成了完全统一开发课程,正在研究完全搅拌开发课程,统一游戏物理​和程序生成课程。他希望不久就能开始“不真实课程”,在推特上关注他@KD7UIY。


如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

0个评论