新闻让你开发的Unity游戏拥抱慷慨的Linux用户

2012.01.27

Unity官方博客以“开拓新航路”为题,撰文介绍了Unity在3.5 Preview版中可以通过Google Native Client和Flash两个新的发布选项,使Unity开发的游戏首度得以运行在Linux操作系统之上,从而将Linux用户也囊括。虽然文章列举的数据并不十分权威和全面,但是有两个观点如果真的成立还是比较有价值的:

  • Linux系统的游戏玩家比Mac OSX少不了多少。
  • Linux系统的游戏玩家更乐于掏腰包,也更加慷慨(相对于其他操作系统的用户)。

(更多…)

试验Unity 3.5 Preview版Flash发布功能Review

2012.01.6

为了给Unity 3.5版新增的Flash发布功能(针对Flash Player 11)造势,Unity再次组织比赛——事实证明重赏之下必有勇夫,大家提交的参赛作品真是令人瞠目结舌:官方论坛上的作品展示帖 这些游戏截图在一个三维游戏引擎的论坛中出现乍一看似乎并无甚特别,但想想看它们每一个都是以SWF的身份运行于浏览器中的Flash Player 11中的……而且别忘记它们是在如此有限的开发时间内完成的。 (更多…)

教程那些不易注意到的Unity实用小功能

2012.01.1

Unity是一款十分易用的游戏引擎,上手并不困难——恐怕也正因如此,少有人会仔细阅读帮助文档对Unity编辑器的功能做一个全面细致的了解,而一些非常实用的小功能在日常使用中很难被发现,但它们对工作效率的提升是有不小的帮助的。AlmostLogical的Devin Reimer有感于此为大家列举了10条不易注意到的Unity实用小功能,在此翻译给大家,并对一些步骤补充了示意图。 (更多…)

思考翻译《Casual Games as Business – 将开发休闲游戏作为事业》

2011.06.15

近期准备开始发展工作室的独立游戏开发方向,目标小游戏。这样以工作室的团队来开发游戏,就不能随随便便想怎么来就怎么来了——能否获得足够的收益支撑工作室的运营乃至盈利才是首先需要解决的问题,简单来说——靠独立游戏制作生存下去。

因此最近一直在研究学习国外独立游戏产业,碰巧Unity的官方网站上有一篇不错的介绍休闲游戏产业和开发经验的文章——Casual Games as Business

为了能够仔细消化并且分享给工作室的伙伴以及其他同好,翻译成了中文:点击下载《Casual Games as Business – 将开发休闲游戏作为事业》

教程解决Unity3D在Win7 64位系统下载入DLL插件报错崩溃

2011.05.15

换新电脑后装的是Windows 7 64位系统,Unity3D等各种软件都运行正常,直到今天我尝试打开之前所做的人脸识别以及增强现实Unity工程文件时,每次运行程序立刻崩溃,原因显然是DLL插件加载造成的。同样的Unity工程文件在老机器的Windows XP下运行正常,在网上搜索后发现也有人在换成64位win 7后出现了无法加载DLL插件的问题——基本可以确定是由于win7 64位系统造成的,但是没有让Unity.exe运行在32位模式的选项(事实上Unity3D本身就是32位程序),于是打开Unity.exe的“兼容性模式”选项,让其运行在“XP Service Pack 3”模式下,问题得以解决!

教程Unity3D使用C#实现Coroutines & Yield

2009.12.10

Coroutines & Yield是Unity3D编程中重要的概念,它可以实现将一段程序延迟执行或者将其各个部分分布在一个时间段内连续执行,但是在Javascript与C#中实现Coroutines & Yield,在语法上却有一些区别:

  1. yield不可单独使用

需要与return配合使用,例如:

yield return 0; //等0帧
yield return 1; //等1帧
yield return WaitForSeconds(3.0); //等待3秒

所有使用yield的函数必须将返回值类型设置为IEnumerator类型,例如:

IEnumerator DoSomeThingInDelay() {...}

最后,也是在”Using C#”这个章节中没有讲到的关键一点是,所有IEnumerator类型函数必须使用”StartCoroutine”这个函数触发,不能单独使用,例如:

StartCoroutine(DoSomeThingInDelay());

最后附上学习Coroutines & Yield时所做的小例子,脚本的作用是不断随机改变材质的颜色,演示demo使用”V字仇杀队”中的面具。

(更多…)

教程Unity3D中如何调用其他GameObject的脚本函数

2009.11.28

调用其他实例的脚本是一种很常用的需求,在Unity3D中实现起来也有多种方法,假设在ScriptB有一个DoSomething函数,如下所示:

using UnityEngine;

public class ScriptB : MonoBehaviour
{
 public void DoSomething()
 {
 Debug.Log("Hi there");
 }
}

在ScriptA中如果要访问某个GameObject的ScriptB脚本中的DoSomething函数:

using UnityEngine;

public class ScriptA : MonoBehaviour
{
 public ScriptB other;
 void Update()
 {
 other.DoSomething();
 }
}

注意ScriptA有一个ScriptB类型的公共变量,这是一个绝妙的小技巧,如此一来你便可以通过编辑器拖拽任何含有ScriptB这一脚本的GameObject至该变量上(因为是public的,所以暴露于编辑器界面中),Unity会自动识别你需要赋值的不是那个GameObject,而是它所包含的ScriptB脚本。

(更多…)

教程学习使用C#进行Unity3D编程

2009.07.25

学习使用C#进行Unity3D编程
这是第一篇关于Unity3D的文章,很是激动,其一来自于Unity3D,一直很关注这款引擎,等资金充足后很有可能会购买以取代Virtools进行商业项目的开发,另一方面的激动来自于C#,这篇文章使得我可以从一个AS3开发者的角度(我最熟悉不过的角度)对C#有一个大致的认识,看起来如果熟悉ActionScript的话C#学起来并不困难,更何况掌握C#后.NET的大门也随即向我敞开,届时我将终于可以自在地进行Windows应用的开发了——所以说这篇文章真是相当令人愉快。

很遗憾本文作者所推荐的C# Pocket Reference在国内还没有出版,O’Reilly几本关于C#的大部头儿著作倒是都在国内上架了,想必是因为这本书过于基础,出版社觉得无利可图吧。

Unity3D 提供了三种可供选择的脚本编程语言:JavaScript, C# 以及 Boo。尽管它们各有各的优势与不足,但对我来讲C#显然会脱颖而出成为我的首选——首选,它完整支持面向对象,而且语法与Java以及ActionScript 3很类似,而这两者都是我所熟悉的。不过在接触Unity3D之前,我一行C#的代码都没写过,所以我必须从头学起。 (更多…)