很强大,免费,如果觉得有用.可以捐助作者.作者博客:http://reverieinteractive.com/
易用的”Inspector”类编辑器.
实时可视化编辑,不需要一边做一边试.
内置两种类型的模型可选.
有多种碰撞盒类型可选.
100610版本源码下载:点击下载此文件
Unity资源包下载:点击下载此文件
作者将于明天发布新版本.敬请期待.
新版本将包含如下功能:
可以添加声音,
可以轻松的作为攀登对象,比如绳梯.
改进控制器.
改进网格绳索
绳索的整体优化修正.
很强大,免费,如果觉得有用.可以捐助作者.作者博客:http://reverieinteractive.com/
易用的”Inspector”类编辑器.
实时可视化编辑,不需要一边做一边试.
内置两种类型的模型可选.
有多种碰撞盒类型可选.
100610版本源码下载:点击下载此文件
Unity资源包下载:点击下载此文件
作者将于明天发布新版本.敬请期待.
新版本将包含如下功能:
可以添加声音,
可以轻松的作为攀登对象,比如绳梯.
改进控制器.
改进网格绳索
绳索的整体优化修正.
将这个脚本保存命名为MassSetMaterials.js后放置在项目的资源目录下的Editor目录中.
然后先将你的”范本”模型设置好材质shader(批量操作后所有选择的物体都会按照这个范本模型去设置材质)
然后用Shift去加选你想要设置材质shader的物体,最后再点击一下那个”范本”模型,确保它在检视面板(Inspector Window)显示.
然后到顶部菜单找Scripts>Mass Set Materials进行批量设置材质shader操作.
@MenuItem("Scripts/Mass Set Materials")
static function MassSetMaterials() {
Undo.RegisterSceneUndo("Mass Set Materials");
var mats : Material[] = Selection.activeGameObject.renderer.sharedMaterials;
for (var obj : GameObject in Selection.gameObjects) {
obj.renderer.sharedMaterials = mats;
}
}
这个脚本我一直再用,它小巧,但是威力大.特别针对大批量贴图要调整尺寸等等的时候作用尤为明显.
在菜单中添加”Custom→Texture”的方式来批量改变所选的贴图导入设置.Unity本身只能一次打开一张图片进行导入设置,目前这个脚本可以批量更改贴图格式,是否开启MipMap,调整纹理最大尺寸,是否可读等等.
用法是把脚本放在你项目的资源目录的Editor文件夹下.然后选择你要批处理的纹理.到菜单中选择要处理的类型就可以了.
ChangeTextureImportSettings.cs for Unity2.x
using UnityEngine;
using UnityEditor;
// /////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Batch Texture import settings modifier.
//
// Modifies all selected textures in the project window and applies the requested modification on the
// textures. Idea was to have the same choices for multiple files as you would have if you open the
// import settings of a single texture. Put this into Assets/Editor and once compiled by Unity you find
// the new functionality in Custom -> Texture. Enjoy! :-)
//
// Based on the great work of benblo in this thread:
// http://forum.unity3d.com/viewtopic.php?t=16079&start=0&postdays=0&postorder=asc&highlight=textureimporter
//
// Developed by Martin Schultz, Decane in August 2009
// e-mail: ms@decane.net
//
// /////////////////////////////////////////////////////////////////////////////////////////////////////////
public class ChangeTextureImportSettings : ScriptableObject {
[MenuItem ("Custom/Texture/Change Texture Format/Auto")]
static void ChangeTextureFormat_Auto() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.Automatic);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT1")]
static void ChangeTextureFormat_RGB_DXT1() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT1);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT5")]
static void ChangeTextureFormat_RGB_DXT5() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT5);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB 16 bit")]
static void ChangeTextureFormat_RGB_16bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB16);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB 24 bit")]
static void ChangeTextureFormat_RGB_24bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB24);
}
[MenuItem ("Custom/Texture/Change Texture Format/Alpha 8 bit")]
static void ChangeTextureFormat_Alpha_8bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.Alpha8);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGBA 16 bit")]
static void ChangeTextureFormat_RGBA_16bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB16);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGBA 32 bit")]
static void ChangeTextureFormat_RGBA_32bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB32);
}
// ----------------------------------------------------------------------------
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/32")]
static void ChangeTextureSize_32() {
SelectedChangeMaxTextureSize(32);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/64")]
static void ChangeTextureSize_64() {
SelectedChangeMaxTextureSize(64);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/128")]
static void ChangeTextureSize_128() {
SelectedChangeMaxTextureSize(128);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/256")]
static void ChangeTextureSize_256() {
SelectedChangeMaxTextureSize(256);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/512")]
static void ChangeTextureSize_512() {
SelectedChangeMaxTextureSize(512);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/1024")]
static void ChangeTextureSize_1024() {
SelectedChangeMaxTextureSize(1024);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/2048")]
static void ChangeTextureSize_2048() {
SelectedChangeMaxTextureSize(2048);
}
// ----------------------------------------------------------------------------
[MenuItem ("Custom/Texture/Change MipMap/Enable MipMap")]
static void ChangeMipMap_On() {
SelectedChangeMimMap(true);
}
[MenuItem ("Custom/Texture/Change MipMap/Disable MipMap")]
static void ChangeMipMap_Off() {
SelectedChangeMimMap(false);
}
// ----------------------------------------------------------------------------
static void SelectedChangeMimMap(bool enabled) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.mipmapEnabled = enabled;
AssetDatabase.ImportAsset(path);
}
}
static void SelectedChangeMaxTextureSize(int size) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.maxTextureSize = size;
AssetDatabase.ImportAsset(path);
}
}
static void SelectedChangeTextureFormatSettings(TextureImporterFormat newFormat) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
//Debug.Log("path: " + path);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.textureFormat = newFormat;
AssetDatabase.ImportAsset(path);
}
}
static Object[] GetSelectedTextures()
{
return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
}
}
ChangeTextureImportSettingsUnity3 for Unity3.x
using UnityEngine;
using UnityEditor;
// /////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Batch Texture import settings modifier.
//
// Modifies all selected textures in the project window and applies the requested modification on the
// textures. Idea was to have the same choices for multiple files as you would have if you open the
// import settings of a single texture. Put this into Assets/Editor and once compiled by Unity you find
// the new functionality in Custom -> Texture. Enjoy! :-)
//
// Based on the great work of benblo in this thread:
// http://forum.unity3d.com/viewtopic.php?t=16079&start=0&postdays=0&postorder=asc&highlight=textureimporter
//
// Developed by Martin Schultz, Decane in August 2009
// e-mail: ms@decane.net
//
// Updated for Unity 3.0 by col000r in August 2010
// http://col000r.blogspot.com
//
// /////////////////////////////////////////////////////////////////////////////////////////////////////////
public class ChangeTextureImportSettingsUnity3 : ScriptableObject {
[MenuItem ("Custom/Texture/Change Texture Format/Auto Compressed")]
static void ChangeTextureFormat_AutoCompressed() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.AutomaticCompressed);
}
[MenuItem ("Custom/Texture/Change Texture Format/Auto 16bit")]
static void ChangeTextureFormat_Auto16Bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.Automatic16bit);
}
[MenuItem ("Custom/Texture/Change Texture Format/Auto Truecolor")]
static void ChangeTextureFormat_AutoTruecolor() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.AutomaticTruecolor);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT1")]
static void ChangeTextureFormat_RGB_DXT1() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT1);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB Compressed DXT5")]
static void ChangeTextureFormat_RGB_DXT5() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.DXT5);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB 16 bit")]
static void ChangeTextureFormat_RGB_16bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB16);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB 24 bit")]
static void ChangeTextureFormat_RGB_24bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.RGB24);
}
[MenuItem ("Custom/Texture/Change Texture Format/Alpha 8 bit")]
static void ChangeTextureFormat_Alpha_8bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.Alpha8);
}
[MenuItem ("Custom/Texture/Change Texture Format/ARGB 16 bit")]
static void ChangeTextureFormat_RGBA_16bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB16);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGBA 32 bit")]
static void ChangeTextureFormat_RGBA_32bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.RGBA32);
}
[MenuItem ("Custom/Texture/Change Texture Format/ARGB 32 bit")]
static void ChangeTextureFormat_ARGB_32bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.ARGB32);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB PVRTC 2bit")]
static void ChangeTextureFormat_RGB_PVRTC_2bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGB2);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGBA PVRTC 2bit")]
static void ChangeTextureFormat_RGBA_PVRTC_2bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGBA2);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGB PVRTC 4bit")]
static void ChangeTextureFormat_RGB_PVRTC_4bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGB4);
}
[MenuItem ("Custom/Texture/Change Texture Format/RGBA PVRTC 4bit")]
static void ChangeTextureFormat_RGBA_PVRTC_4bit() {
SelectedChangeTextureFormatSettings(TextureImporterFormat.PVRTC_RGBA4);
}
// ----------------------------------------------------------------------------
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/32")]
static void ChangeTextureSize_32() {
SelectedChangeMaxTextureSize(32);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/64")]
static void ChangeTextureSize_64() {
SelectedChangeMaxTextureSize(64);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/128")]
static void ChangeTextureSize_128() {
SelectedChangeMaxTextureSize(128);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/256")]
static void ChangeTextureSize_256() {
SelectedChangeMaxTextureSize(256);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/512")]
static void ChangeTextureSize_512() {
SelectedChangeMaxTextureSize(512);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/1024")]
static void ChangeTextureSize_1024() {
SelectedChangeMaxTextureSize(1024);
}
[MenuItem ("Custom/Texture/Change Texture Size/Change Max Texture Size/2048")]
static void ChangeTextureSize_2048() {
SelectedChangeMaxTextureSize(2048);
}
// ----------------------------------------------------------------------------
[MenuItem ("Custom/Texture/Change MipMap/Enable MipMap")]
static void ChangeMipMap_On() {
SelectedChangeMimMap(true);
}
[MenuItem ("Custom/Texture/Change MipMap/Disable MipMap")]
static void ChangeMipMap_Off() {
SelectedChangeMimMap(false);
}
// ----------------------------------------------------------------------------
[MenuItem ("Custom/Texture/Change Non Power of 2/None")]
static void ChangeNPOT_None() {
SelectedChangeNonPowerOf2(TextureImporterNPOTScale.None);
}
[MenuItem ("Custom/Texture/Change Non Power of 2/ToNearest")]
static void ChangeNPOT_ToNearest() {
SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToNearest);
}
[MenuItem ("Custom/Texture/Change Non Power of 2/ToLarger")]
static void ChangeNPOT_ToLarger() {
SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToLarger);
}
[MenuItem ("Custom/Texture/Change Non Power of 2/ToSmaller")]
static void ChangeNPOT_ToSmaller() {
SelectedChangeNonPowerOf2(TextureImporterNPOTScale.ToSmaller);
}
// ----------------------------------------------------------------------------
[MenuItem ("Custom/Texture/Change Is Readable/Enable")]
static void ChangeIsReadable_Yes() {
SelectedChangeIsReadable(true);
}
[MenuItem ("Custom/Texture/Change Is Readable/Disable")]
static void ChangeIsReadable_No() {
SelectedChangeIsReadable(false);
}
// ----------------------------------------------------------------------------
static void SelectedChangeIsReadable(bool enabled) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.isReadable = enabled;
AssetDatabase.ImportAsset(path);
}
}
static void SelectedChangeNonPowerOf2(TextureImporterNPOTScale npot) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.npotScale = npot;
AssetDatabase.ImportAsset(path);
}
}
static void SelectedChangeMimMap(bool enabled) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.mipmapEnabled = enabled;
AssetDatabase.ImportAsset(path);
}
}
static void SelectedChangeMaxTextureSize(int size) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.maxTextureSize = size;
AssetDatabase.ImportAsset(path);
}
}
static void SelectedChangeTextureFormatSettings(TextureImporterFormat newFormat) {
Object[] textures = GetSelectedTextures();
Selection.objects = new Object[0];
foreach (Texture2D texture in textures) {
string path = AssetDatabase.GetAssetPath(texture);
//Debug.Log("path: " + path);
TextureImporter textureImporter = AssetImporter.GetAtPath(path) as TextureImporter;
textureImporter.textureFormat = newFormat;
AssetDatabase.ImportAsset(path);
}
}
static Object[] GetSelectedTextures()
{
return Selection.GetFiltered(typeof(Texture2D), SelectionMode.DeepAssets);
}
}
今天换了一个环境工作,还没适应.还好吧.
下午正犯困,QQ上一个朋友发来信息,从别人的Unity3D群复制了这些信息给我.本来想淡定无视掉的.可是想想,我博客好久没写自己的心情了.索性来胡乱说说吧.
墨* Mac(3736695**) 15:55:00
只有自己用着正版的Windows、Office、Max、PS才有脸说不谈盗版,我只所以不在原来号称中国Unity3D第一群里就是这个原因。
墨* Mac(3736695**) 15:56:08
一边用着盗版的Windows、Office、Max、PS,反而说在Unity3D里不准讨论盗版是一种虚伪。
墨* Mac(3736695**) 16:13:33
其实1群很弱的,里面没什么技术高人,有很多人问问题根本就没人回答,那么所谓中国第一群体现在什么方面,人多嘛?!
在没有免费版的时候,我也共享过延长试用期的方法.因为软件没法用就根本也没法学.那个时候也仅仅有Mac版,这也使很多对Unity感兴趣的Pc用户挡在了门外.且那时Mac版Unity很难很难找到”使用”的办法.我喜欢Unity,我也喜欢和大家分享开心的事情.
当得知Unity要发布Windows版之后,我和叫你自由等人也在私下讨论,这下破解在所难逃.但是这谁都不可避免,像Unity3刚发布后的2,3天吧.我和大卫说,Unity3全版本告破,大卫说已经知道了.他们也很重视这个事情.
在Win版发布后,我就尽量的在能力范围内保护Unity3D并推广Unity3D,好让大家一起学习一起进步.起初有一部分原因是因为原有Mac版的用户几乎都购买了正版Unity,所以心里上就不太喜欢拿着破解还大张旗鼓的.后来.再就是后来的免费版发布,也就是起初收费的独立版.因为免费版或者叫学习版除了高级函数无法使用外,完全可以用于学习和独立开发,当需要高级函数来解决高级问题时候,我想也应该掏钱支持Unity的时候了.
另外我学习Unity3D,喜欢它的强大,易用,性价比高之外.用它的最终目的也就是赚钱吃饭,其他人有反对这种说法的吗?估计很少是因为看他挺好玩的一玩就玩几年的吧.所以我觉得在自己力所能及的范围内保护这个”赚钱工具”,这样利人利己的事何乐不为呢?
群人比较多,甚至有的时候想进群都走”后门”托”熟人”,当然这是玩笑话.现在一个群里最多容纳200个朋友,人满的时候只能按照发言顺序清理最久没发言的.加之有的刚入群没报道,正赶上我清理人员,看没发言也一并清理了.
无规矩不成方圆,不允许谈论Unity3D破解,为了群内其他组员的电脑安全,不允许发莫名的网址.当然与技术无关的,比如正治也自然而然的就和谐掉吧.Unity3D的群少,谈正治谈理想的群一把一把的.专群专用.珍惜资源.挺好的事,我觉得.
我从来没有在网络上对外宣称我的Unity群是国内Unity第一大群,有证据的可以出来反驳我.这只是一个比较大团体,我喜欢Unity,做开心的事,树大招风.这个我不否认.淡定!
其他的,有句话.道不同不相为谋,足以说明.
好久没有在我的博客上唠叨琐事了.今天复古一次.祝大家开心.
ps:关于unity的免费版水印,有些人说免费版有水印.没法用.其实经过实际应用来看,认识unity的,不管有没有水印,都能看出来是不是unity做的.不认识unity的,再怎么多的unitylogo水印,他也不认识unity.甚至有很多客户认为那个logo就是我公司的标志呢.
2010.10.15更新:
有些新人还没学Unity,都没入门.就开始狂找Unity破解.试Unity破解,图个啥?找快感么?官方地道的free版正大光明的不用.还没到释放Unity的威力的时候就找破解,找Crack.累不累.
纵观各个Unity的论坛网站,都肆无忌惮的共享,传播Unity破解,Patch版,内存破解版,Loader引导版各种各样的.轻松就可以拿到.拿到手后试试,哦耶.真的破解了,真的可以用!然后呢?最后的结果是什么?我不说大家自明.
Unity3正式发布已经过去有一阵子了.引起的学习热浪也非常高.
新功能和改进
一如往前,我们增加了新的功能和优化,详情如下
支持Android:
这个版本已经支持Android系统.
不过请注意,这是一个早期的版本,并不代表Unity Android最终的质量.
标准资源:
标准资源包进行了更专业的切分分类.
新的图像效果:阳光轴线(Sun Shafts) (又叫做神射线(God Rays)); 动态阴影效果(Bloom)和镜头光晕(Lens Flares); 虚光(Vignetting) & 色差现象(Chromatic Aberration); 曲线颜色校正(Curve based Color Correction); 景深(Depth of Field); 对比度增强(Contrast Enhance) (又名锐化蒙版(Unsharp Mask)); 几何轮廓(Geometry Outline); 鱼眼镜头(Fisheye); 水彩效果(Create Shading).
改进粒子效果.
新的可以与图像效果兼容的带有alpha通道的天空盒.
增加有用的编辑器快捷键.
用Character Motor脚本改进第一人称控制器.
新的CharacterMotor脚本用于角色控制器.
适当调整斜坡和步伐防止乱飞.
至此多种跳跃结束后落地的模式.
变速跳跃和其他一些改进.
改进的速度和加速度控制.
可以设定的滑动和垂直弹跳值可以防止爬上异常陡峭的表面.
它能用于第一人称,第三人称,人工智能等等.
编辑器新功能:
Unity专业版有了一个全新的视觉界面,就是黑色配色,你可以在首选项中切换它.
集成了造树工具.文档”http://unity3d.com/support/documentation/Components/class-Tree.html“
通过Beast照明系统而集成的烘焙工具,文档”http://unity3d.com/support/documentation/Manual/Lightmapping.html“
自动创建光影图UV(网格导入设置)
地形系统使用相同的解决方案,当使用天光的时候会有全新效果.
已经不必再使用”Lightmapped”着色器;照明系统可以处理出可交互的光影图.以及材质与光影图混合的动态阴影效果.
对象选择器.不再是一个简单的下拉菜单,而是一个新的资源窗口,在这里可以预览关于资源的一些样子和信息.
场景视图的改进,文档”http://unity3d.com/support/documentation/Manual/Using%20The%20Scene%20View.html“.
搜索结果会相应的在场景中高亮显示.
可以框选.
可选以顶点为单位对齐.
可以将材质,预设,贴图直接拽入场景视图即时预览.
改进相机调整手柄及增加一个相机预览窗口.
改进光源的调整手柄.
将场景导航控制栏风格更统一了.
新的纹理导入设置对话框,更易用的用户界面及各个平台的独立设置.
新的构建设置窗口以更方便的支持多平台发布.
曲线弹出窗口:
有个 AnimationCurve 类型的脚本变量显示在检视面板上为一个曲线字段(curve field).
点击一个曲线字段会打开一个带有曲线的编辑器窗口,类似于动画曲线编辑器那样的窗口.
可定制的曲线字段同样能用在自定义编辑器窗口.
编辑器现在能检查有新版本时候通知用户.
纹理压缩现在为多线程处理,在多核电脑上导入贴图更快.
资源服务器窗口:
历史记录窗口将显示多行注释,而不是简单的提示说明.
选中历史记录窗口效果更好.
定位键(F键)在历史记录窗口中也有效.
可以记住每个主机的名称和密码.
在不需要合并的条目中禁止冲突合并选择按钮.
改进着色器的错误反馈.在选择的着色器的检视窗口同样显示一个错误和警告的列表.
在曲线弹出窗口和动画视图按下Ctrl键会开启捕捉刀网格功能(Mac系统下是梅花键).Ctrl或梅花键不再用于增加选择键,但是Shift见依旧用在这.
编辑器的控制栏右下角会显示目前错误和警告的总数.
改进视音频的检视面板.
双击 * unitypackage将自动打开Unity并导入.
编辑器API已经扩展:文档”http://unity3d.com/support/documentation/ScriptReference/40_history.html#3.0.0″
新增对象类型的搜索属性.
现在能拖拽一组Object到检视面板添加为数组.
拖拽编辑器窗口时候更好的显示一个缩微图效果.
当进行一个长时间的操作时候会在Unity图标上显示ygie进度提示,Mac图标上,Win7的任务栏上.
Mac系统下增加了多点触摸的支持.捏的手势变大窗口,轻扫手手势切换场景视图中的相机.
可视化模式现在不做alpha测试.Alpha测试实际消耗GPU,所以和真实消耗不相符.
动画窗口可以显示预设好的动画剪辑,只需要点一下预设的根节点对象.
保护Transform的位置,旋转,缩放,防止误操作.
Build Pipeline:可能的时候将从资产文件序列中去除Typetrees,这使文件更小,可以获得更快的加载时间.
在层次视图中双击游戏对象将在场景视图中最大化显示该物体.
退出播放模式后将转到最后一个激活的标签窗口,而不是依旧停留在游戏视图.
层次视图也有了工具条了.
在Player设置中的API兼容设置可以选择mono配置.如果整合第三方遇到兼容问题的时候可以更改这里(Webplayer上还不能用2.0).
Player能设置高分辨率的图标(Windows:256X256和128X128;iOS:114X114).
在项目和场景中搜索的结果将按照字母顺序排列.
检视面板的锁定改成了一个真实的按钮,而不是隐藏在菜单中.
旋转工具现在包含了”Look At Point”属性,党按下Shift+Ctrl或Shift+梅花键的时候启用.
在场景视图中能试听音频.场景视图的搜索可以彻底的过滤音频源.
添加Webplayer构建模板.
现在可以通过命令行来更新资源服务器的具体修改.
新的图形功能:
静态遮挡剔除(Occlusion Culling)现在使用Umbra sPVS.
集合体整合(Geometry Batching):原本只在Unity iPhone1.7上的动态和静态的几何体整合功能现在可用于所有平台.
渲染方式:(可以在Player Settings或者每个相机上进行选择;文档”http://unity3d.com/support/documentation/Manual/RenderingPaths.html“)
递延照明(Deferred Lighting).在递延渲染方案中实时灯光数量就不用小心翼翼的用了.照明的消耗仅在它发生作用的像素范围内.所以你可以在场景中用很多小灯泡.
点亮顶点(Vertex Lit).这将使所有着色器和灯光用固定在每个顶点上照明.这个效率很快;主要是在移动平台或者中低端设备上使用.
快速渲染(Forward)照比Unity2.x进行了较大的更改.见下文图形渲染部分.
表面着色器-一个更简单的着色器编写方法.我们没有写关于它的文档,你要相信我们,它真的很易用!
速度上我们优化了渲染代码,相同的场景设置下,比Unity2.6快了20~50%.
用于iOS和Android的OpenGL ES 2.0,你可以给对象用着色器,后期处理效果等等.
Cg/HLSL着色器和Unity3表面着色器将被编译成GLSL后用到场景中.GLSL将被进一步的优化,因为移动平台的技能还不能很好的优化着色器.
当然,由于移动平台还不是十分强大.在可能的情况下你应该使用OpenGL EL 1.1.
Particle Rotation: Particle.rotation, Particle.angularVelocity and respective properties in ParticleEmitter.
Soft Particles! When you use Deferred Lighting and have Soft Particles on in Quality Settings, particles will fade out close to intersections with the scene. All built-in Particle shaders (except VertexLit) support this.
Shadowing improvements: use native shadow maps on Direct3D (faster, less memory, native filtering); much reduced self-shadowing artifacts; Soft shadows support for Point lights; much less “shadow halos” around objects for directional light soft shadows; optimized shadows for Forward rendering path (shares depth buffer with main rendering); optimized shaders for directional light shadows.
Terrain: Added slider (under Terrain Settings) to control detail object density.
Vertex shaders for Shader Model 3.0 on Direct3D9 and GLSL on OpenGL can read from textures.
Skybox is rendered after opaque geometry. Improves performance if your application is fillrate bound.
Separate Alpha Blending: use Blend ColorSrc ColorDest, AlphaSrc AlphaDest in ShaderLab.
In-editor visualization on which objects would use which rendering paths (green/yellow/red for deferred/forward/vertexlit).
#pragma glsl for compiling Cg/HLSL shaders into GLSL instead of ARB assembly programs on OpenGL.
Compiling shaders to #pragma target 3.0 allows 512 texture indirections on OpenGL (up from 4).
Development standalone players on Windows have Direct3D PIX events; useful if you use PIX, Intel GPA or other graphics performance tools.
Fog just works on Direct3D with Shader Model 3.0 shaders, on OpenGL with GLSL and on OpenGL ES 2.0. Additionally, there’s no need to write #pragma fragmentoption ARB_fog_exp2 in your shaders anymore; just remove that line.
CameraDepthTexture modes can be combined if you want to get both depth & depth+normals textures.
It is possible to forcibly disable Anisotropic filtering on a texture, even when Quality Settings have anisotropic on all textures. Just set anisotropic slider on the texture to zero.
Uniformly scaled objects will no longer be pre-scaled before rendering – instead uniform scale is now natively supported by the renderer.
Cg/HLSL VPOS (pixel position) pixel shader input semantic is supported now.
Terrain: Expose detail resolution per patch; previously was hardcoded to 8.
Terrain: Improved performance of painting textures & detail objects.
Asset Pipeline Improvements:
Upgraded to FBX SDK 2011.2.
Import support for stepped and linear keys for position curves; improved compression and curve fitting for position curves.
Settings for allowed animation compression error in mesh importer.
Implemented support for importing 1 unit in 3dsmax as 1 unit in Unity (the default is 1 cm in 3dsmax as 1 unit in Unity).
Implemented import of tangent space from FBX, .max, .mb and .ma files.
Switched Cinema4D import process to work in background mode.
Support for Cinema4D R11 on Mac OS X.
Support for FBX2010 format when exporting from Cinema4D.
Audio Improvements:
Filter components: Reverb, Echo, Distortion, Chorus, High- and Low-pass. Can be applied to each audio source or globally to the listener.
Reverb Zones: Apply reverb to main audio output, when the listener is within zone(s) defined by a position and min/max radii.
Live output and spectrum data access from each audio source or globally from the listener.
Tracker/Mod file support.
Sample-accurate synching. Sources played in the same frame are always started at the exact same point in time. Sources can be delayed and played in the future on an exact sample accurate boundary with .Play(int64 delay).
Surround sound (7.1, 5.1, 4.0, ProLogic DTS) support.
Attenuation curves for volume, spread, panning and lowpass filter factors.
Doppler factor per audio source.
AudioSource prioritization.
iOS latency settings. Choose between Default, Best Performance, Good Latency and Best Latency.
Asset memory is freed after loading audio data.
Physics Improvements:
Upgraded PhysX to 2.8.3.
Cloth and clothing simulation: use the new InteractiveCloth, SkinnedCloth and ClothRenderer components.
Layer based ignore collisions: use the Physics inspector or Physics.IgnoreCollision().
Continuous collision detection, to make sure that fast moving colliders will not pass through other colliders. See Collider.collisionDetectionMode.
Added Physics.SphereCast() and Physics.CapsuleCast() to implement volume raycasts.
Added Rigidbody.SweepTest() to check if a Rigidbody would collide with anything if moved into a certain direction.
New Scripting Features (documentation):
Mono Develop for script editing and debugging! Documentation.
Upgrade Mono and C# compiler to Mono 2.6.3. This brings C# 3.5, variable type inference, lambda expressions, LINQ and more.
New UnityScript compiler: generics, interfaces, structs, type cast operator, anonymous functions/closures, lambda expressions, function types, type inferred array comprehensions and more.
New Boo compiler.
Mono class libraries derived from Silverlight profile for the web player.
Socket security sandbox implementation. Just like Flash (think crossdomain.xml).
WWW class security sandbox implementation. Just like Flash (think crossdomain.xml).
Per-platform script defines. Use UNITY_EDITOR, UNITY_WEBPLAYER, UNITY_IPHONE etc. Documentation.
Improved UnityScript compilation speed.
New scripting API functions (documentation). Some highlights:
WWW.responseHeaders will contain the response headers received from the HTTP server.
Application.isWebPlayer.
SystemInfo.graphicsPixelFillrate to query GPU pixel fillrate. Returns fillrate for about a thousand GPUs out there.
GL.ClearWithSkybox.
Math functions: MoveTowards to Mathf, Vector2, Vector3, and Vector4; Quaternion.RotateTowards.
Changed Mathf.Approximately to not only be useful for comparing very small numbers.
Stacktraces have been prettified, useless information is better stripped from stack traces.
Other Improvements:
Web Player: Java and ClickOnce based installer on Windows for true one-click installation process.
IME input support (for languages like Japanese, which require multiple keypresses to enter a character) on Windows, and in the editor and standalone on the Mac.
Support for OS font rendering (new “dynamic” font rendering mode), to save space in distribution and texture sizes. Textures are generated dynamically to contain the characters which are needed.
Documentation: scripting examples in UnityScript; C# and Boo. Docs for all platforms merged and platform specific parts toggle-able.
Web Player: UnityObject.js script makes Web Player embedding easier.
iOS: Added cpu-waits-gpu metric in internal profiler; useful for tracking down GPU bound applications.
iOS: Native resolution support for iPhone 4.
iOS: Improved game build sizes.
iOS: Unity Remote 2: It is possible to turn off image syncing between editor and device. Useful for input-critical games.
OS X Web Player: Now supports NPDrawingModelInvalidatingCoreAnimation, as will be required by future versions of Chrome.
Networking: RakNet upgraded to version 3.732
Networking: Connection tester, Network.TestConnection(), now reports your NAT implementation type more accurately.
Networking: Exposed Network.logLevel so you can change the amount of log output at runtime.
Networking: Added network GUID, used for NAT punchthrough.
Bug Reporter: Supports multiple file attachments; trims attached log files if they are too large.
Some Changes We Did
We thought you might want to know about them… Read more in the docs.
Graphics Changes:
Forward rendering path had lots of changes:
Most common case (one directional per-pixel light) is drawn in one pass now! (used to be two passes in 2.x)
Point & Spot light shadows are not supported. Only one Directional light can cast shadows. Use Deferred Lighting path if you need more shadows.
Most “Vertex” lights replaced with Spherical Harmonics lighting.
Forward rendering path is purely shader based now, so it works on OpenGL ES 2.0, Xbox 360, PS3 (i.e. platforms that don’t support fixed function rendering).
Shader & ShaderLab changes:
If you want to write shaders that fully interact with lighting; it’s best to use Surface Shaders.
Unity 2.x per-pixel lit shaders will need to be manually converted to surface shaders or manually fixed.
Shaders are compiled to more targets by default (e.g. OpenGL ES 2.0); you might hit some places where OpenGL ES 2.0 does not like some Cg/HLSL constructs. Either fix the offending places, or exclude shader from OpenGL ES 2.0 via #pragma exclude_renderers gles.
Lots of sanitization to built-in variable names (mostly to accommodate new OpenGL ES 2.0, Xbox 360, PS3 platforms).
Unity 3.0 will automatically upgrade most of 2.x shaders for syntax changes. This actually modifies your shader files (look for “Upgrade NOTE” in your files).
Normal map compression; just mark texture as Normal Map and will be DXT5nm compressed at decent quality. All shaders need to use UnpackNormal(n) instead of n*2-1.
Remove concept of “RECT” textures. All non-power-of-two RenderTextures are addressed with 0..1 UVs now (just like in D3D9 in Unity 2.x).
Parallax shaders get height from a separate texture now.
Self-Illuminated shaders get illumination from a separate texture now.
Terrain lighting modes (Vertex/Lightmap/Pixel) are gone. Terrain is lit just like everything else now.
When rendering with Shader Replacement, no lighting is ever applied. Skybox, GUI, Halos, Projectors are not rendered.
Background shader queue is treated like Geometry now (arbitrary sorting, assumed to be opaque).
OnBecameVisible/OnBecameInvisible have slight behaviour changes. For example, now they are not called each frame on a shadow caster that is not visible itself.
Self-Illuminated materials calculate emissive color as (material color * texture * illumination); previously was (texture * illumination).
Simplified Shadow Bias setting on Lights.
Depth render textures on D3D9 use native depth buffer. Value distribution changed from linear to z-buffer like (just like in OpenGL).
Spot lights attenuate exactly like Point lights now.
Point lights with Cookies actually attenuate now.
OnRenderObject script callback behaviour changed. Now those callbacks are called after everything is rendered; not at points in the middle of rendering.
Changed the way the Camera-DepthTexture and Camera-DepthNormalTexture shaders are loaded so that they can be overridden when needed.
Custom Tree shaders specify their billboard shader via Dependency keyword now (instead of Tag). The billboard shader will be automatically included in the build.
Screen space coordinates should use float4 on all platforms (used to be V2F_SCREEN_TYPE). When sampling a texture with tex2Dproj, use UNITY_PROJ_COORD macro around it.
Added WorldSpaceViewDir() and WorldSpaceLightDir() functions to UnityCG.cginc.
Obscure Graphics Changes That No One Will Probably Notice TM: documentation.
Renamed the 2.x tree shaders and the 3.x Tree Creator shaders; both are put under “Nature” section.
OnPreCull, OnPreRender, OnPostRender and OnWillRenderObject messages are not sent to disabled behaviors.
Old Unity 2.x Lightmapped shaders moved under “Legacy Shaders” submenu.
Terrain: Removed the concept of grayscale lighting from terrains.
Editor Changes:
Unity Editor on Mac OS X requires Intel-based Mac and OS X 10.5 “Leopard” or later.
Removed Soft Vegetation option from Quality Settings UI. It does nothing in built-in shaders now.
Separated preferences for 3.x and 2.x editors.
Removed ancient Dinosaur graphics emulation.
Moved “All compile errors must be fixed” notification to scene view notifications (moved it out of console).
Made the curve editor send a CurveChangeCompleted event when the curve change has been completed.
Create New Project dialog now expects user to select an existing, empty folder on the Mac
Mesh Import option “Split Tangents” is on by default.
Texture Importer:
Bump maps are now referred to as “normal maps” in the editor.
Normal maps are labelled as “NM” in their format.
PVRTC compression level moved to advanced settings.
Generating a Cubemap will make the cubemap be the root asset.
Textures that only use one value across the whole alpha channel and that value is not 1 are marked as needing-alpha-channel.
The command and control key modifiers in the view tool have been switched on OS X. Now command moves and control zooms. Control still moves on Windows.
Physics Changes:
Rigidbody mass is no now longer limited to 10000.
RaycastCollider is now deprecated.
Center of gravity and inertia will now always be automatically recalculated when setting or animating collider properties or positions, unless they had been explicitly set from code before.
Slope limit on character controller now works properly above 45 degrees. When loading old scenes the value will be clamped to 45 degrees to mimic the old behaviour.
JointDrive.maximumForce will now also be taken into consideration when JointDrive.mode is JointDriveMode.Position. You may need to change your joint setups so that they still work.
Unity iOS Changes:
iPhoneStreamingAssets is renamed to StreamingAssets and is now located under the Assets folder (visible from within the Editor).
Target iOS Version field added to player settings. Now deployment target can be specified separately from active SDK version.
“Enable Unity Networking” flag removed from iOS player settings. Now stripping of networking is handled automatically.
Most iPhoneInput members moved to Input class.
Native plugin support added to both Basic and Advanced Unity iOS licenses.
Added support for iPad / iPhone Simulator
Hardware audio decoder is now shared between audio clips.
Other Changes:
Random number generator (Random class) was changed. It is marginally slower, but produces better “randomness”, especially in lower bits. Additionally, integer version is not limited to 15 bits range.
Internal Random number generators (for Particles etc.) are reset after each level load. Now your particles in any level do not depend on what levels were loaded before.
The default runtime font is now Arial 13, as rendered as a dynamic font on Mac OS X and Windows.
Scripting: Renamed WWW.data to WWW.text
Scripting: ScriptableObject derived classes must be instantiated using one of ScriptableObject.CreateInstance overloads.
Scripting: UnityScript strict mode no longer allows arbitrary downcasts from Object (unless #pragma downcast is used).
Input: Keyboard on MacOS X will now reflect the behavior on Windows (two separate KeyDown events for key code and character, KeyUp event only for key code).
Scripting: Removed support for .NET 1.1 profile.
Scripting: Made previously undocumented GUIClip class internal to UnityEditor.
Networking: Connection tester now requires 4 public IP addresses to work.
Here, I Fixed It!
We fixed some things as well…
Editor Fixes:
General: Improved Undo behaviour.
General: Game View Stats window has more accurate frametime & FPS display.
General: Don’t enter Play mode if there are compiler errors.
General: Debug.LogWarning will not pause the game if console has Error Pause selected.
General: You can now search for script derived types in the project window (when Type is selected).
General: Fix newly created materials in project view sometimes having empty names.
General: Reset menu option is now undoable.
General: Fixed importing standard packages into projects with non-Latin characters in path on Windows.
General: Fix occasional exceptions with Undo when asset inspector loses selected assets.
General: Fix editor window sometimes shrinking into the corner when changing layout presets on Mac OS X.
General: Fixed a bug where selecting a scriptable object with a missing script reference would result in null reference exceptions
Crash: Fixed crash when deleting the last item in an array of strings.
Crash: Fix crash on Windows when undocking Game View.
Crash: Fix crash caused by EyeDropper picking color on different monitor.
Crash: Editor is more resilient to missing object references (eg. a Unity iPhone 1.7 upgraded project was crashing the editor on play).
Inspector: “Open Compiled Shader” in Shader Inspector works more predictably and uses text editor chosen in preferences.
Inspector: Fixed display of boolean arrays.
Inspector: Fixed Material/Mesh/Object previews being affected by scene Fog.
Inspector: Fix “Any” Texture properties in Materials using the wrong GUI style.
Inspector: Fixed bug where opening a terrain inspector would dirty the terrain causing it to get saved although nothing had changed.
Asset server: Fix editor hanging on OS X when trying to merge conflicting text assets.
Asset Server: Fix unable to update when parent of file modified on server is locally deleted.
Asset Server: Cleaner Diff output when comparing binary files in Asset Server.
Asset Server: Fixed asset server caching failing in some cases (e.g. when using EditorUtility.CopySerialized).
Importing: Tangents will be properly handled when mesh compression is enabled.
Importing: Fixed direct import from Maya 2011.
Importing: Using TextAsset to store binary data now actually works, as long as your file has the .bytes extension.
Importing: Cylindrical cubemap projection generation now works.
Importing: On rare occasions Unity Editor on Windows was throwing ‘Writing file error’ while reimporting all assets and anti-virus running in the background.
Importing: Fix texture object fields in cubemap inspector losing the thumbnail when reimporting.
Importing: Shader files with uppercase file extensions are properly imported now.
Importing: Reduced memory usage during texture import.
Importing: Better memory handling when importing assets, switching scenes, building player.
Importing: FBX importer gives detailed warnings if it detects problems in the skin of a model.
Importing: Fixed import of user properties from 3D asset files.
Importing: Fixed import of multiple animation takes.
Scene View: The grid is now also shown in Iso mode.
Scene View: Terrain is selectable in Scene View just like any other object!
Animation View: Margins are now fixed instead of a percentage.
Animation View: Improved handling of window resize.
Animation View: Make create key operations work better for steep curves and disallow it for read-only curves.
Animation View: Prevent creating keys outside of permitted horizontal range.
UI: Maximized state of main editor is remembered across sessions on Windows.
UI: Don’t show Project Wizard or Welcome Screen if Reimport All was invoked.
UI: Fix some of context menus not being properly validated (grayed out) on OSX.
UI: EditorWindow.Notification now properly shows white text.
UI: Clamp profiler frame selection dragging correctly.
UI: Fixed animation icons being clipped in the inspector.
UI: Fixed dragging tab on Windows putting window title bar above the screen top.
UI: Show error message if -nographics is used without -batchmode.
UI: In Package Import Dialog selecting checkboxes will now correctly affect child elements.
UI: Fixed Asset Server tooltips in Overview window getting too large and disappearing too soon.
UI: Fixed old regression where pressing F to frame selection frames selected object in last active scene view, if active window doesn’t use frame selection event.
UI: When editor is processing something on Windows, made utility windows not be on top of all application windows in the system.
UI: Fix error messages when trying to move file to the same folder via Project view on Windows Vista or 7.
UI: Fixed icons for sub-assets in search view.
UI: Show proper cursor when trying to drag files out of Unity Editor on Windows.
UI: License Info word wraps properly in About Window.
UI: Fixed the eye dropper color picking tool disabling itself when the mouse is moved too fast.
UI: Fixed editor not finding GUI styles on computers with some of non-English locales.
Rendering Fixes:
Driver workaround: Fixed occasional crash on some Intel graphics cards when shader uses mismatching texture types.
Driver workaround: Disabled anti-aliasing on Macs (pre-Snow Leopard) with GeForce 7300 graphics cards; occasional driver crashes.
Driver workaround: Disabled mip-mapped Render Textures on Macs with Intel GMA 950 cards; occasional driver crashes.
Driver workaround: Fixed garbage on Macs with GeForce 7300 GPUs. Had to disable Deferred Lighting on those cards though.
Particles: Particle color and UV animation will now be based on the lifetime of each individual particle instead of the max energy set in the emitter.
Shadows: Spot light shadows fade out correctly on D3D9.
Shadows: Fixed point light self-shadowing artifacts which were mostly happening on Mac.
Shaders: Using more than 8 textures in a pixel shader works now!
Shaders: Nested block comments (/* foo /*bar*/ */) are supported now.
Shaders: Fixed error messages sometimes being printed when both GLSL and non-GLSL shaders are present in the scene.
Shaders: When there are Direct3D shader assembly errors, print the shader name in the error message.
Shaders: Fixed instruction count reporting for D3D9 assembly shaders.
Crash: Fixed crash if accidentally setting invalid shadow cascade count in Quality Settings.
Crash: Fixed crash when shader has unterminated block comments.
Crash: Fixed crash when shader tries to fallback to itself.
Terrain: Fixed various issues with terrain billboards (non-uniform scale, culling, mismatch between root of the billboard and the mesh etc.).
Terrain: Fixed too aggressive culling of billboarded terrain details.
Terrain: Fixed terrain blocking MouseDown events from scene view gizmos.
Terrain: Made it possible to use trees with only one material.
Terrain: Now actually use the tree cutoff value that is set on the material.
General: Fixed half-texel offset issues with Graphics.Blit on D3D9.
General: Removed rect clamping for camera’s normalized viewport rectangle.
General: Fixed texture binding on iOS/Android; textures won’t become corrupted when loading levels now.
General: Custom Fonts will now be properly displayed by Unity GUI.
General: Fixed AABB calculation for just-unloaded Meshes and skinned meshes with no bones.
Unity iOS Fixes:
Fixed iPad Simulator 3.2 support
Fixed stripping issue which caused crashes when coroutines are used.
Fixed WWW.text and “Fast but no exception” problem.
Fixed a crash when using AnimationCurve property in a script.
Fixed input processing on iPhone 4 with native resolution.
Fixed video player orientation on iOS 4.
Physics Fixes:
Meshes created with Mesh.CombineMeshes will correctly collide when used with MeshColliders.
Make WheelHit report correct sidewaysDir.
Make raycasts work when Time.timescale is zero.
Kinematic or sleeping rigidbodies will now properly update their internal PhysX state when a parent rigidbody gameObject is moved.
Collision events are sent more properly now.
Scripting Fixes:
WWW.text respects content-encoding specified in HTTP response headers.
Debug.Log is now thread safe.
Fixed internal UnityScript compiler error caused by nested arrays.
Fix crash when opening a project where a script throws an exception in a static constructor.
Fixed crash caused by untyped or wrongly typed parameter of message handler.
Fixed crash when DestroyImmediate is called in user code and Unity doesn’t expect the object to be destroyed.
Material.CopyPropertiesFromMaterial() now works as expected.
GameObject.SampleAnimation respects the WrapMode of the clip.
UnityGUI: Fix GUIUtility.RotateAroundPivot and ScaleAroundPivot using screen space pixels instead of clip space pixels.
UnityGUI: Fix ScrollViews not properly ignoring DragPerform/DragUpdated events.
UnityGUI: GUILayout.Toolbar now correctly calculates toolbar size.
Fixed a typo bouncyness in Physics Material, now it’s spelled correctly bounciness.
Fixed a crash when setting negative values for particle minEnergy, maxEnergy through a script.
Issue an error when the script class name and file name do not match (after script has been attached). Similarly issue an error if a class was changed to be abstract or was turned into an interface.
Networking Fixes:
Timestamps are now correct in received NetworkView RPC messages.
Network.useNat has been deprecated. It is now set automatically when you Connect (since you can now only connect with NAT punchthrough using a GUID) and is set in the InitializeServer function call explicitly.
You can now connect using a HostData struct received from the master server (correct method automatically used) and give a connection password when connecting with GUIDs.
Fix server crash when player with network views disconnects.
Fix for problem when using Network.Instantiate after loading a new scene.
Fixed problem with master server not returning local IP addresses when it should (when host/client are on the same router/external IP).
Network.TestConnection() now always returns error status correctly. To restart a test after getting an error it needs to be forced with the appropriate parameter.
Fixed network scope bug which resulted in state sometimes not being synchronized correctly.
Other Fixes:
Fixed saving screenshots to non-ASCII path names.
Web Player: Fixed some memory leaks.
Fixed various corner cases in AnimationEvents logic.
Audio + iOS: Make UnitySetAudioSessionActive(true/false) actually work.
Audio: Fix crash when trying to access AudioListener and it doesn’t exist.
Player: fix some of movies playback crashing web and standalone players.
BugReporter: Escape special characters in bug description.
Web Player: Fixed one frame of garbage showing when going out of fullscreen mode in CoreAnimation plugin on Mac OS X.
Audio: AudioSources with PlayOnAwake checked, now plays in the first frame (and can be accessed correctly from Start() and Update()).
Audio: .time & .timeSamples can now be set before playing AudioSource(s)
Bug Reporter: Do not terminate the if the bug submission fails (Mac).
Fixed WWW.uploadProgress crashing the web player (this property still is not fully implemented though).
UnityGUI: Fix Vertical Margin error for GUILayout groups with multiple elements.
Web Player: Several fixes to make it work better with Google Chrome on Mac OS X.
Known Issues
MonoDevelop: Single-stepping outside the control flow of a script while debugging results in decreased performance until normal execution continues.
A flaw in the way 64 bit Windows OS handle structured exceptions for 32 bit applications can cause crashes in Unity players. The issue may surface, for example, if a player running on a 64 bit Windows causes a NullReferenceException to be thrown, even if the exception is handled. This bug affects all 32 bit applications running on 64 bit Windows, including Microsoft .NET applications.
A hotfix solving the issue is available on support.microsoft.com, but of course this does not help your end user. Your best bet is to keep your players exception-free (which is always a good idea), at least until the fix is distributed to end users via Windows update.
Touch.deltaPosition and Touch.deltaTime can be inaccurate on Android.
Tree Editor Leaves can not be manually rotated.
Debugger: Does not halt on some exceptions thrown from internal Unity engine code.
Build Settings Window may not initially react to mouse clicks. Workaround: move/resize the window.
Generate Lightmap UVs: the results may be different on mac and windows. If you encounter this problem, please report a bug.
Generate Lightmap UVs: performance degradation is expected on highly tessellated mesh. This will be fixed in subsequent releases.
Graphics: Anti-Aliasing does not work with Deferred Lighting.
Memorable Quotes
3AM the night before the beta release:
Joachim: If we do this we should do it right
Nicholas: This is going to be fun. I’ve never written threaded code before…
翻译中,未完成….待续…
原文:http://unity3d.com/unity/whats-new/unity-3
译者:威阿
转载请注明来自1Vr.Cn.
早晨发现Unity官网论坛更换了样式,换掉了原有Phpbb坛子.
这几天Unity3的内侧版也频繁更新,最近都成一天一个版本了.没想到.今晚正式版发布.首页挺帅的.大气.
也看了新的在线Demo,后台载入,效果,优化等等都很让人欣喜.
新Demo地址:http://unity3d.com/gallery/live-demos/index.html#bootcamp
Unity3下载地址:http://unity3d.com/download
Unity3介绍:http://unity3d.com/unity/whats-new/unity-3
该睡觉了.下载正式版中…
五个月前苹果公司发布了iOS4.0的AppStore的新服务条款,可能要禁止第三方类似Unity这种技术的开发软件.
然后我们发表了多次文章,并在经过考虑后,我们甚至想了新的解决办法来永远避免苹果拒审Unity的程序.
苹果公司一直没有拒绝过由Unity创造的游戏提交,其中也有一些非常受欢迎的精品游戏.而且也没有玩家去关注游戏之外的游戏,他们不会想游戏是因为Unity基础版制作的,也不管是不是用工具或者什么中间件制造的.
即使有很多朋友要求我们,我们从来没有因为苹果的新条款而受到投诉.在这样谁也不知道确定结果的日子,我们背负着数以千计的用户的沉重责任.但是在这段日子里,可能有些人认为我们没有足够的主动解决这个问题,我们说声对不起.
其实,我们在最近的几个月一直在与苹果保持着联系,每隔几个星期我们就同他们谈话.而现在苹果终于做了新的调整.
我们认为这是完全正确的做法,只使用Xcode也可能早出很烂的程序,使用Unity工具也能做出令人惊讶的出色程序.一个平台供应商的重点应该重点放在扶持软件开发商,以作最好的和给予乐趣给所有百万用户为主要目的.
苹果一直在加速学习的过程,即使他们已经是最聪明的人,我们知道如何操作世界上最成功的网店是多么的不容易.可在要禁止第三方工具的路上我们一直感到失望,但我们一直乐观的应对.不过,今天,我们尊重苹果的正确决定.
最后,我们Unity公司所有人员祝大家工作越来越好!
译自:http://blogs.unity3d.com/2010/09/10/unity-and-ios/
转载请注明来自1Vr.Cn
不知何时我的博客失去了原始目的.不是除了Unity就是Apple.最近不太好.淡定.
北京时间9月10日凌晨消息,据国外媒体报道,苹果发布声明,解除对包括Flash在内的一切开发工具的禁令,供App Store的应用程序开发者自行选择。
去年春天,Adobe发布开发工具,使工程师们可以利用Flash开发iOS应用。苹果的回应却是封禁不是通过苹果自有工具开发的一切程序。
苹果及其CEO史蒂夫·乔布斯(Steve Jobs)坚称,此举是为了保护用户,因为利用苹果的工具为iPhone开发的程序能够更好地运行。但这一行为激怒了许多开发者,因为他们的选择余地受到限制,为多种平台开发程序也更为困难。显然,苹果接受了用户的意见。
苹果声明全文如下:
苹果应用商店App Store已经改变了移动应用程序的开发和分销方式。它已经成为世界上最大的移动应用平台,应用程序数量超过25万个,下载超过65亿次。开发者们通过销售应用程序,已经获取了10亿美元以上的收益。
我们一直在努力让App Store变得更好。我们听取开发者的意见,并认真考虑他们的反馈。以此为基础,今天我们要对iOS开发者程序许可证的第3.3.1、3.3.2及3.3.9条款作重要修改,并解除今年早些时候发布的某些禁令。
我们特此宣布,在开发成果不下载任何代码的前提下,解除有关iOS应用程序开发工具的一切禁令。这将给予开发者所想要的灵活性,同时又保持了我们所需要的安全性。
此外,我们将首次公开App Store审核方针,以帮助开发者了解我们是如何审核他们提交的应用的。我们希望这一举措能使我们更加透明,并帮助开发者创造出更多的App Store应用程序。
App Store也许是移动软件历史上最为重要的里程碑。我们将与开发者通力合作,继续通过创新移动应用给用户带来惊喜和欢乐。