新手入门,unity2d,Unity,游戏开发
unity2d,unity2d教程

Unity 内存优化 和 内存池使用实践

本文由游戏玄学翻译社制作发布!翻译:太昊,兔角鹿,小木曾;Review: 风雨时;统筹润色:杨雍

ObjectPooling-feature

想象一下:你正在打飞机!!哦,不,测试你最新的和最棒的一个射击游戏。敌人在以你能掌握的最快速度来回飞行,然后,砰!卡了一帧之后,你就被凶神恶煞的外星人手打成了翔。

这可是场横扫千军的战斗,不应该由于莫名其妙的内存尖峰左右战斗的结果。你是不是也曾经因为这个问题输掉?来来来,搬个小马扎,听我来扒一扒 对象池技术 吧。

在这篇Unity教程中,你将学到:

  • 所有关于对象池技术的内容

  • 如何将一个game object入池

  • 如何在运行时按需扩展对象池

  • 如何扩展对象池以适应不同的对象

在教程的最后,你会得到一个可以得到新游戏的全部代码。而且,你会懂得如何为现有的游戏改进这个代码。

阅读全文»

如何在unity中制作塔防游戏 —— 完结篇

给怪兽子弹——很多很多的子弹!

将Images/Objects/Bullet1 从Project Browser拖拽到场景中。将z 位置设置为-2 ——x 和 y 位置不重要,因为在运行时每次实例化一个新的子弹都需要设置它们。

添加一个名为BulletBehavior的新脚本,并在MonoDevelop中添加以下变量。

Public float speed =10;
Public int damage;
public GameObject target;
public Vector3 startPosition;
public Vector3 targetPosition;
  
privatefloat distance;
privatefloat startTime;
  
private GameManagerBehavior gameManager;

阅读全文»

如何在unity中制作塔防游戏 —— 瞄准敌人

当游戏运行时,在Hierarchy 中扩展一个Enemy(Clone) 对象并选择它的子集HealthBar 。改变它的Current Health 值并查看生命条的改变。

追踪射程内的敌人

现在怪兽需要知道要锁定哪个敌人为目标。在实现之前需要对怪兽和敌人做一些准备工作。

在Project Browser中选择Prefabs\Monster 并在Inspector中为它添加一个Circle Collider 2D 碰撞器。

将碰撞器的Radius 设置为2.5 ——这个设置了怪兽的火力范围。

检查Is Trigger 以便对象可以通过这个区域而不是撞上它。

最后,在Inspector顶部,将怪兽的Layer 设置为Ignore Raycast。在对话框中点击 Yes, change children。如果不忽略光线投射,碰撞器会对点击事件作出反应。这个问题是因为怪兽阻挡了用于它们下方Openspots的事件。

阅读全文»

如何在unity中制作塔防游戏 —— 完善敌人

如果你喜欢我们的教程,欢迎加入泰然网Unity交流群201505161

创建敌人标签

Select the Enemy prefab inthe Project Browser. At the top of the Inspector, click on the Tag dropdownand selectAdd Tag.

在工程浏览视口选择Enemy 预制件。在Inspector顶部,点击Tag 下拉菜单并选择Add Tag。

创建一个名为Enemy的Tag。

选择Enemy 预制件,在Inspector中设置它的Tag 为Enemy。

阅读全文»

如何在unity中制作塔防游戏——通知系统

如果你喜欢我们的教程,欢迎加入泰然网Unity交流群201505161

很久没有更新Unity相关的教程了,这一次我们接着上一次的游戏继续制作

通知玩家

在设置成群的运动之前,需要让玩家知道即将到来的袭击。还有,为什么不在屏幕顶部显示当前这波敌人的数量?
几个GameObjects都需要这波敌人的信息,所以要将它添加到GameManager的GameManagerBehavior 组件。
在MonoDevelop中打开GameManagerBehavior.cs 并添加这两个变量

public Text waveLabel;
public GameObject[] nextWaveLabels;

waveLabel 存储了从屏幕右上角读取的一波敌人数量的引用。nextWaveLabels 存储了两个GameObjects,当两个游戏对象结合到一起时,会创建一个动画来显示新一波进攻的开始,像下图所显示:

阅读全文»

快速使用UGUI开发背包系统

如果你喜欢我们的教程,欢迎加入泰然网Unity交流群201505161

『泰然网』原创,转载请注明出处。

本篇教程由魏巍撰写。

魏巍现为大三学生,熟悉C++,C#,JavaScript,在校期间负责过网站制作,游戏开发,VR漫游开发等相关工作。

与以前的ngui所比较的话,ugui感觉更为简单方便,同样也与ngui有很多相同的功能,这里我们先来初步制作ugui的背包系统。

新建一个项目,创建一Image对象,同时会生成Canvas和EventSystem,修改Image的名字为Bg,我们可以将Bg的image组件修改为自己喜欢的图片作为背景,并调整RectTransform让其布满整个Canvas。

阅读全文»

如何在unity中制作塔防游戏——学会转向

欢迎来到如何在unity中制作塔防游戏的第二部分。现在正在unity中创建一个塔防游戏,而且在第一部分可以放置并升级怪兽了。还有一个敌人来袭击曲奇。

然而,敌人不知道该面向哪个方向!还有,这是进行攻击的一个可怜的理由。在这部分,将添加一波波敌人并武装怪兽以便他们可以保护珍贵的曲奇。

阅读全文»

如何在unity中制作塔防游戏——敌人来了

到了为敌人“铺路”的时候啦。敌人出现在第一个路径点,然后向下一个移动并重复执行直到它们到达曲奇。

可以通过以下让敌人游行:

  1. 定义一个敌人追踪的路径
  2. 沿路移动敌人
  3. 旋转敌人以便他们看起来是向前的

用路径点创建一条路

在Hierarchy 右键选择Create Empty 来创建一个新的空游戏对象。命名为Road,并确认它的位置是(0, 0, 0)。

现在,在hierarchy 中右键点击Road 并创建另一个空游戏对象作为Road的子集。命名为Waypoint0 并将它的位置设置为 (-12, 2, 0) ——这就是敌人发起攻击的起始点。

阅读全文»

如何在unity中制作塔防游戏——升级怪兽

如果你喜欢我们的教程,欢迎加入泰然网Unity交流群201505161

升级这些怪兽

在下图中,能看到在更高级别中怪兽看起来有多恐怖。

它太松软了!不过如果尝试去偷它的曲奇,怪兽就会变成杀手。

脚本作为执行怪兽登记系统的基础。它追踪在每一个等级怪兽拥有的力量,当然有怪兽的当前等级。
现在创建这个脚本。

阅读全文»

?>