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

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

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

ObjectPooling-feature

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

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

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

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

  • 如何将一个game object入池

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

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

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

阅读全文»

Unity物体外表面渲染「PART-1」-基本方法介绍

Unity物体外表面渲染「PART-1」-基本方法介绍

基本方法

体绘制

**
**

这是一个的教程关于体绘制,射线运用和标记距离区域的第一部分。这些技术使我们能够克服现代3D引擎的最大的限制,它只让我们渲染一个对象的外表。立体绘制使创建逼真的材料,与光以一种复杂的方式相互作用,如雾,烟雾,水和玻璃。制作精美的效果如NMZ的等离子球(下边),没有立体渲染是不可能的。

阅读全文»

2D游戏特效动画的播放机制

特效动画的播放机制

本文转载自逆水行舟的博客,版权归作者所有。

gitblog-logo

一. 简介

动画在2D游戏里用得十分广泛, 根据这些动画的特点,我们可以大概归为3类

1. 粒子动画

这种动画是由几百甚至上千个粒子构成, 所有粒子都共享一个纹理, 这些粒子都是从一个发射器发出, 加以一定的随机因素, 在不同发射速度和重力等外力作用下,每个粒子呈现不一样的运动状态, 大量粒子可以组合成各种各样不一样的效果, 比如烟花, 火焰. 粒子动画的实现一般都会使用批次渲染和对象池来保证性能.

2. 骨骼动画

这种动画通常用于表现有多个动作的角色, 它通常是由骨骼(bone)和绑定在骨骼上的蒙皮(skin/mesh)构成.

动画师通常在spine(2d)或者3dmax等工具里面对骨骼动作进行设计, 同时对蒙皮进行编辑.

3. 特效动画

特效动画不需要或者难以使用骨骼进行表达, 比如一个刀光效果或者一闪一闪的星星, 我们可以使用最原始的实现方式, 对动画的每一帧都画一张图片, 依次连续展示这些图片就可以达到动画效果.

但是这种方法实现的动画过于浪费空间和内存. 其中有非常多的特效我们可以通过关键帧动画的方式来实现, 常使用Flash工具进行关键帧动画的设计.

本文中下面只讨论关键帧动画的实现.

阅读全文»

Quick-Cocos2dx-Community 3.6.3 beta 更新说明

  1. spine runtime 更新到匹配 spine 3.4 编辑器。
  2. Luajit log buffer size恢复到512,解决log信息不全。
  3. UISilder bugfix:在onSliderPressed中调用silderValue不能正确更新滑块位置。
  4. OpenSSL更新到1.0.2g,以保证google play 审核。
  5. 重新编译网络库,以支持ipv6(iOS App Store 审核)。
  6. sockettcp 加入ipv6网络检查(服务器地址必需域名方式)。

下载:百度盘下载, 校验码 shasum 512: 8ee980af5a9195f31a2e91c56e4be47e7051567b

Unity3D | 快速搭建场景

如果你喜欢我们的教程,欢迎加入泰然网Unity交流群201505161
『泰然网』原创,转载请注明出处。

抱歉各位,拖更了很久,主要是因为生病了,动了个手术。现在好多了,回到定期更新的节奏了。

在Unity3D引擎中,引擎为我们提供了多种便于搭建场景的功能。利用好prefab预设,将会使我们更快速的搭建游戏场景。另外,在搭建场景之前,规划好我们的游戏场景也是一个必要的步骤。那么今天,我们就以上次建好的模型为例,快速搭建一个Unity的场景。

##使用合理的目录结构

首先在你的Unity目录里面要保持良好的目录结构,如使用如下的目录结构。

目录结构

阅读全文»

如何在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;

阅读全文»

?>