2018新功能 unity3d_unity3d2019有什么新功能 - CSDN
  • 博主怀着激动的心情更新了一下Unity2018.2.0版本,听说这个版本很牛逼,更新了很多功能。 安装完后,打开Unity首先发现和之前版本有所不同的是,Project窗口多了一个Packages的目录,里面有好几个熟悉的名字,...

    博主怀着激动的心情更新了一下Unity2018.2.0版本,听说这个版本很牛逼,更新了很多新的功能。

    安装完后,打开Unity首先发现和之前版本有所不同的是,Project窗口多了一个Packages的目录,里面有好几个熟悉的名字,像ads,TextMesh。我一开始表示不懂为什么会有个东西:这是什么鬼?!

    原来这是Unity给我们免费提供的工具包,只要导进来就可以直接用,不用可以删掉,说明一下,在Packages里面就可以了,不要把里面的文件再拖到Assets里面!

    Packages Manager

    Window > Packages Manager 打开资源包管理器。

    点击All打开所有的资源包,在里面我们可以管理所有的资源包,安装和移出。

     

    展开全文
  • 文章主旨在于归纳整理Unity2018新功能,便于宏观了解和定点深入。 Unity2018 Unity2018更新日志大总结 Scriptable Render Pipeline 可编程渲染管道 整理如下,待学习: Unity Surface Shaders and rendering paths ...

    阅前提示

    适合人群:ALL
    阅读方式:浏览
    文章主旨在于归纳整理Unity2018新功能,便于宏观了解和定点深入。

    Unity2018

    Unity2018更新日志大总结


    Scriptable Render Pipeline

    可编程渲染管道

    整理如下,待学习:

    Unity Surface Shaders and rendering paths

    可编程渲染管线——LWRP轻量级渲染管线剖析

    SRP-Demo

    Scriptable Render Pipeline Overview


    Shader Graph

    安装:

    Package Manager => Shader Graph & Render-Pipelines. Lightweight

    Create => Rendering => LightweightRenderPipelineAsset

    Edit => Project Settings => Graphics => Pipeline Settings

    Edit => Render Pipeline => Upgrade

    Create => Shader => xxx Graph

    使用


    Entity Component System

    实体+组件+系统

    实体:游戏组成的基本单元 , 用来挂载组件
    组件:单纯的数据,仅仅代表该组件的特性
    系统:用来处理拥有组件的实体集合,单纯的行为。

    改变开发模式,面向数据设计,解决 GameObject/MonoBehaviour 处理容量大的瓶颈

    适合与Job System 实现 SIMD

    /*两种组件方式*/
    ///混合
    public class SimpleHybirdComponent : MonoBehaviour{public int a;}
    ///纯ECS
    public struct SimpleValue : IComponentData{public int a;}
    public class SimpleComponent:ComponentDataProxy<SimpleValue>{} // 解决挂载问题
    /// 两者都是挂于实体之上,需要有 GameObjectEntity 存在
    
    /*System*/
    public class SimpleSystem : ComponentSystem
    {
        struct Group
        {
            public SimpleHybirdComponent  simpleComponent;
            public Transform transform;
        }
    
        struct InjectGroup
        {
            public readonly int Length;
            public ComponentArray<SimpleHybirdComponent> components;
        }
    
        [Inject] InjectGroup injectG; //注入属性,启动时会被赋值
        protected override void OnUpdate()
        {
            //GetEntities<T> 将会遍历所有实体获取符合组件组的实体
            Debug.Log(injectG.Length);
            Debug.Log(injectG.components.Length);
            foreach (var item in GetEntities<Group>())
            {
                item.transform.Rotate(Vector3.up * item.simpleComponent.a * Time.deltaTime);
            }
        }
    }
    
    /*System*/
    public class JobSimpleSystem : JobComponentSystem
    {
            /// <summary>
            /// 使用IJobProcessComponentData遍历符合条件的所有Entity。
            /// 此过程是单进程的并行计算(SIMD)
            /// IJobProcessComponentData 是遍历entity的简便方法,并且也比IJobParallelFor更高效
            /// </summary>
            struct D : IJobProcessComponentData<SimpleValue>
            {
                /// <summary>
                /// 实现接口,在Excute中实现旋转
                /// </summary>
                public void Execute(ref SimpleValue v)
                {
                    Debug.Log("JobComponentSystem:"+v.a);
                }
            }
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var job = new D();
            return job.Schedule(this);
        }     
    }
    

    ECS+C#Jobs例子


    C# Jobs System

    帮助编写更简单更安全的多线程代码与Unity交互。

    Jobs System 通过创建Job来进行多线程工作,替代线程。

    官方文档

    官方文档翻译

    Unity C# Job System介绍


    Burst

    Burst是一个编译器,它使用LLVM将IL / .NET字节码转换为高度优化的本机代码

    Burst主要用于与Job系统高效协作。
    您可以通过使用属性[BurstCompile]装饰Job结构,从而在代码中简单地使用burst编译器 。

    Burst User Guide

    Unity Burst 用户指南 翻译


    Improved Prefab Workflows

    功能:

    Prefab Mode中编辑预制体
    Nested Prefabs (嵌套式预制体)
    Prefab Overrides (预制件覆盖/重载)
    Prefab Variants (预制件变体)
    使用脚本API操作Prefab

    Unity2018.3全新Prefab预制件系统深入介绍


    展开全文
  • https://blogs.unity3d.com/cn/2018/05/02/2018-1-is-now-available/?utm_campaign=saas_china_announcement_2018-05-Unity-2018.1-launch-CN&amp;amp;amp;utm_content=2018-artist-2018.1...

    这个水印好烦啊
    今天收到unity的邮件,然后便浏览了下2018的新特性。
    https://blogs.unity3d.com/cn/2018/05/02/2018-1-is-now-available/?utm_campaign=saas_china_announcement_2018-05-Unity-2018.1-launch-CN&utm_content=2018-artist-2018.1-release-CN-2&utm_medium=email&utm_source=Eloqua

    看到一个比较有意思的新功能
    有关2D骨骼动画
    有本事git你也加水印啊

    然后就看文档下载demo准备学习一下
    https://forum.unity.com/threads/2d-animation-preview-packages.521778/
    demo by GitHub:
    https://github.com/Unity-Technologies/2d-animation-samples

    看了下文档并没有全部弄懂,查了下其他的资料基本没有。但,最后还是弄懂了,也萌生了写个中文教程的想法。

    那么,开干吧

    下载unity2018,新建一个项目。
    这里写图片描述

    把上面这张图片放到工程里
    这里写图片描述

    改下texture type 为Sprite(2D and UI)

    这里写图片描述
    编辑manifest.json(“2d myAnimation”为我的项目名字) 为:

    {
        "dependencies": {
            "com.unity.2d.animation":"1.0.15-preview",
            "com.unity.2d.ik":"1.0.5-preview"
        },
        "registry": "https://staging-packages.unity.com"
    }

    保存,切回unity,加载holdon

    然后你就可以给sprite加骨骼了。

    切到刚刚加入的sprite–点击sprite editor按钮,会出现下面的界面

    这里写图片描述

    左上角,点开下拉菜单,会有五个选项(后两个为刚刚加载的)

    选择这里写图片描述

    然后右下角会出现一个 tools
    这里写图片描述

    (注意如果没有的话 ,要把sprite slice一下)

    这里写图片描述
    然后好好编辑下骨骼吧

    apply

    然后将bone editor下来菜单切换成skin weights and geometry editor

    点击generate 下拉菜单–设置三条属性–生成

    这里写图片描述

    然后设置 weights: weights–Auto (当然这里可以手动设置一下)

    这里写图片描述

    apply搞定
    然后把sprite拖放到场景中,生成一个gameobject

    添加组件 Sprite Skin
    这里写图片描述

    已经生成了三个节点了,就是刚刚我们弄得三个骨骼–点击 create Bones按钮

    这里写图片描述

    骨骼生成以及绑定成功。

    现在开始设置骨骼动画

    刚才的gameobject继续添加一个组件 animator

    新增一个animator controller拖上去

    打开animation窗口(window–animation)
    create一个animation

    这里写图片描述

    这里写图片描述![](https://img-blog.csdn.net/20180521162321631?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1RXXzM0NQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

    点击 红点 进行逐帧编辑

    选择帧–拖动骨骼–选择下一帧–拖动骨骼

    这是我的结果

    这里写图片描述

    至此animation设置好了
    关联到animator上(当然有必要存一个prefab)

    运行游戏

    这里写图片描述

    展开全文
  • 今天我们来说说通过反编译Unity3D的AssetBundle来提取游戏资源,博主写这篇文章的目的并非是要教大家如何去破解一款基于Unity3D引擎开发的游戏,而是想通过今天这篇文章来告诉大家如何在开发Unity3D游戏的过程中保护...

    各位朋友,大家好,欢迎大家关注我的博客,我是秦元培,我的博客地址是http://www.qinyuanpei.com。今天我们来说说通过反编译Unity3D的AssetBundle来提取游戏资源,博主写这篇文章的目的并非是要教大家如何去破解一款基于Unity3D引擎开发的游戏,而是想通过今天这篇文章来告诉大家如何在开发Unity3D游戏的过程中保护自己的游戏资源。

    漫话Unity3D的AssetBundle

    对于AssetBundle,其实博主是在以前的文章中是有提到的。不知道大家还记不记得,博主曾经在写游戏开发和Lua的不解之缘这个系列文章的时候,提到并且使用过AssetBundle这种技术。具体来说呢,AssetBundle在Unity3D中是一种用于资源打包盒资源动态加载的解决方法,比如我们平时玩的单机游戏容量一般都比较大,这是因为制作人员在制作游戏的时候将所有的项目资源都整合到了一起。可是如果我们用AssetBundle来做这个游戏的话,我们就可以只在发布的游戏中提供支持游戏功能的核心部分,而将游戏当中的场景、模型等资源以AssetBundle的形式打包然后放到服务器上,这样当游戏客户端处于联网的时候就可以从服务器上下载这些资源,从而实现游戏资源的动态加载,由此可见AssetBundle可以帮助我们减少游戏的容量。如果是在需要安装包的场合下,那么游戏包容量的大小无疑会为游戏加些印象分。

    为什么这幅图总让我想起仙剑四里四人在即墨那晚的时光呢?

    比如最近《轩辕剑6外传穹之扉》这部单机游戏发布了,从各大游戏网站的评测到和一样我喜欢单机游戏的各位朋友们的亲身体验,大家一致的认为这部游戏整体表现还不错,应该考虑玩一玩。这样难免让博主有些心动,可是看到17个G的游戏容量时还是犹豫了下。DOMO小组从《轩辕剑6》就开始使用Unity3D引擎,在经历了第一部游戏的失败后,或许此次DOMO小组会将游戏优化的比较好吧。这里如果有喜欢单机游戏的朋友不妨去玩玩看,毕竟我们学习游戏开发的初衷就是做出好游戏,如果不热爱游戏又怎么能做出好游戏呢?好了,扯得有点远了,这里我们注意到一个重要的因素就是游戏容量,如果DOMO采用AeestBundle的话,游戏的容量肯定会减少很多。可是这样一来,它就不是单机游戏了嘛,对吧!

    在Unity3D中AssetBundle是专业版中的一个功能,在免费版的Unity3D中是无法使用这个功能的,不知道在Unity5中这个功能是不是划分到了个人版中。好了,下面我们来看看如何使用AssetBundle。我们主要从使用AssetBundle打包和加载AssetBundle这两个方面来说:

    使用Assetbundle打包

    使用AssetBundle打包主要通过BuildPipeline.BuildAssetBundle()这个方法来实现,该方法原型为:

    bool BuildAssetBundle (Object mainAsset,Object[] assets,string pathName, BuildAssetBundleOptions 
    optionsBuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets,
    BuildTarget targetPlatform= BuildTarget.WebPlayer)  

    在这个方法中,第一个参数是一个Object类型,表示一个激活的物体;第二个参数是一个Object[]类型,表示所有选中的物体;第三个参数是一个string类型,表示要导出的资源包的路径,资源包的扩展名可以是assetbundle或者unity3d;第四个参数表示的是打包选项,默认是完全打包和依赖打包。这里重点解释下这两个概念,完全打包是指所有资源都参与打包,比如说一个模型带有贴图和动画,那么打包模型的时候贴图和动画都会被作为资源打包。而依赖打包是相对于Prefab来说的,比如说PrefabA中引用了PrefabB这个对象,那么打包的时候这两个对象都会被打包,并且它们之间的这种依赖关系会在打包后继续保持;第五个参数是平台的选择,因为Unity3D是一个跨平台的游戏引擎,而各个平台现在的情况又不尽相同,因此现在Unity3D采取的方案是各个平台只能使用自己平台对应的AssetBundle,这一点希望大家在使用的时候注意啊。好了,现在我们来看一个简单的例子:

        /// <summary>
        /// 输出AssetBundle
        /// </summary>
        /// <param name="type">平台类型</param>
        static void ExportToAssetBundle(ExportType type,BuildTarget target)
        {
            //获取存储路径
            string savePath=EditorUtility.SaveFilePanel("输出为AssetBundle","","New Resource","unity3d");
            if(savePath==string.Empty) return;
            //获取选中的对象
            Object[] selection=Selection.GetFiltered(typeof(Object),SelectionMode.DeepAssets);
            if(selection.Length==0) return;
            //打包
            if(type==ExportType.All){
              BuildPipeline.BuildAssetBundle(null,selection,savePath,BuildAssetBundleOptions.CollectDependencies,target);
            }else{
                BuildPipeline.BuildAssetBundle(obj,null,savePath,BuildAssetBundleOptions.CollectDependencies,target);
            }
        }

    这是一个简单的导出AssetBundle资源包的方法,它有两个参数,第一个参数表示是一个枚举类型,定义为ExportType,取Single时表示打包一个特定的激活物体,比如说一个模型、一个场景等等;取All时表示打包所有选中的物体,比如一个场景。第二个参数表示打包的平台,这个不用多说了。因为博主的免费版的Unity3D不支持AssetBundle,所以这里没法给大家演示了,具体效果请自行测试,有问题的话给博主留言就是了。

    加载AssetBundle

    加载AssetBundle是一个从网络中下载资源的过程,因此需要使用Unity3D的WWW功能,这是一个简单的网络协议的封装,可以像浏览器一样访问某个URL地址或者是本地地址,访问WEB地址需要使用HTTP协议,访问本地地址需要使用File协议。我们来看一个具体的例子:

        /// <summary>
        /// 加载一个unity3d格式的文件
        /// WEB地址——http://server.com/xxx.unity3d
        /// 本地地址——file://.unity3d文件的绝对路径
        /// </summary>
        IEnumerator LoadUnity3DFile(string url)
        {
            WWW www=new WWW(url);
            yield return www;
            if(www.error!=null){
                Debug.Log(www.error);
            }else{
               AssetBundle bundle=www.assetBundle;
              Instantiate(bundle.mainAsset,Vector3.zero,Quaternion.identity);
            }
        }

    在这里我们直接使用bundle.assetBundle获取了全部的资源,如果只需要获取资源中的一部分,则只需要通过bundle.Load()方法就可以了,这里需要传入资源的名称。当我们使用完资源后可以通过bundle.Unload()方法来卸载资源,达到释放内存的目的。

    从反编译《新仙剑OL》看AssetBundle打包

    好了,下面我们以《新仙剑OL》这款游戏的AssetBundle的反编译来探索下在使用AssetBundle打包应该注意哪些问题。《新仙剑OL》这款游戏呢,是采用Unity3D引擎开发的一款横跨客户端游戏和网页游戏的网络游戏,游戏以《仙剑奇侠传》初代游戏剧情为主,玩家将第三人称视角再次跟随主人公展开一段荡气回肠的感人故事。这款游戏总体来说还不错吧,因为毕竟是网游,我们不能用单机游戏的视角去评价,具体的原因大家都是知道的。

    好了,为什么我们要选择这款游戏呢?
    * 第一,这款游戏的客户端只有30余M,体积小适合拿来研究(这就是AssetBundle的好处啊)* 第二,博主是一位仙剑玩家,一直希望有一天《仙剑奇侠传1》能够用3D技术重现,这个游戏满足了博主的好奇心
    * 第三,网络上已经有朋友对这个游戏的打包进行了研究,这里感谢网友朋友提供部分.unity3d文件及相关文件。

    我们选择的解包工具是一款叫做disunity的命令行工具,经过博主的尝试,这个工具真心强悍啊,可以解开.unity3d文件和.assets文件,可以拿到的数据形式有贴图、声音、模型等。具体的情况大家可以在稍后看到。

    首先我们找到《新仙剑OL》的安装目录,然后我们就能发现一个叫做assetbundles的文件夹,这是怕大家不知道吗?这太明显了吧!我们打开文件夹会发现Charachers、NPC、Scene等等文件夹,继续往下找我们发现了好多的.unity3d文件,不过这些文件都是以.unity3d然后跟些随机字符串的形式存在的。根据网友朋友们的提示,这些文件就是.unity3d文件,不过游戏制作组为了干扰我们故意接了下随机字符在后面(呵呵,还有比这更弱的加密方式吗?)。博主看到这里的第一感觉就是想先用加载AssetBundle的方式来看看能不能将这些AssetBundle读取出来,因此果断改了文件扩展名,然后开始在Unity3D中读取,结果程序报错看来是我们想的简单了啊。没办法的办法,强行解包吧!在命令行中输入:

    disunity extract C:\Users\Robin\Desktop\s049.unity3d

    接下来程序会在桌面上生成一个上s049的文件夹,打开文件夹一看,尼玛,竟然直接拿到了模型的网格数据(.obj)和贴图数据(.dds)以及相关的Shader。这让我突然间有点不能接受啊,马上打开Blender将网格数据导入,结果童年的林月如就出现在了我们的面前:

    林月如灰模

    因为博主不会在Blender中给模型贴图,所以我们到Unity3D中完成贴图,首先需要将模型导出为FBX格式。好了,将模型导入Unity3D后,将贴图赋给模型,童年的林月如就闪亮登场了,哈哈!

    林月如贴图效果

    好了,再来一张,不过这张没有贴图,需要大家自己来辨别这是谁啊,哈哈!

    柳梦璃灰模

    通过disunity这个工具我们还能获取更多的资源,剩下的内容就由大家自己去探索吧。通过这部分的研究,我们可以总结出以下观点,希望大家在使用AsssetBundle这项技术时注意:
    * 尽量在一个AssetBundle中打包多个资源,这样做的好处是别人没法通过加载AssetBundle拿到你做好的Prefab。
    * 尽量将一个预制件分割成不同的部分分别存放,这样做的好处是即使别人拿到了你的预制件却是不完整的。
    * 尽量利用动态脚本来加载场景而不是将整个场景打包,即使将整个场景打包,要把贴图和模型分开放置(因此如此,我虽然拿到了游戏的场景贴图,可是没有用啊)
    * 尽量利用加密的方法来隐藏本地的AssetBundle或者使用不易察觉的存储位置作为AssetBundle的存储位置,不要用明文数据进行存储。

    好了,今天的内容就是这样了,希望大家喜欢,AssetBundle打包是一个值得去深入研究的问题,今天博主提出的这些观点不过是对《新仙剑OL》这个游戏的打包提出de一些看法,如果大家有不同的看法,欢迎一起来交流!

    展开全文
  • Unity2018.1中对粒子系统进行了重大改进,包括功能、性能很多方面,快来看看吧! GPU网格实例化 粒子系统现在支持GPU实例化来渲染网格。粒子系统使用Procedural Instancing,可以在此处详细解释:...

    本文首发于“洪流学堂”微信公众号。
    洪流学堂,让你学Unity快人几步

    Unity2018.1中对粒子系统进行了重大改进,包括功能、性能很多方面,快来看看吧!

    GPU网格实例化

    粒子系统现在支持GPU实例化来渲染网格。粒子系统使用Procedural Instancing,可以在此处详细解释:https://docs.unity3d.com/Manual/GPUInstancing.html

    实例化支持已添加到“Particle Standard Shaders”中,并将在所有新内容中默认启用。旧版内容升级到Unity 2018.1后,可以使用Renderer模块中的复选框启用GPU实例化。

    还可以将粒子实例化功能添加到自定义的着色器中。这是一个简单的例子:

    Shader "Instanced/ParticleMeshesCustom"
    {
        Properties
        {
            _MainTex("Albedo", 2D) = "white" {}
            [Toggle(_FLIPBOOK_BLENDING)] _FlipbookBlending("Flipbook Blending", Int) = 0
        }
    
        SubShader
        {
            Tags{ "RenderType" = "Opaque" }
            LOD 100
    
            Pass
            {
                CGPROGRAM
                #pragma vertex vert
                #pragma fragment frag
                #pragma multi_compile __ _FLIPBOOK_BLENDING
                #pragma multi_compile_instancing
                #pragma instancing_options procedural:vertInstancingSetup
                #include "UnityCG.cginc"
                #include "UnityStandardParticleInstancing.cginc"
    
                struct appdata
                {
                    float4 vertex : POSITION;
                    fixed4 color : COLOR;
                    float2 texcoord : TEXCOORD0;
                    UNITY_VERTEX_INPUT_INSTANCE_ID
                };
    
                struct v2f
                {
                    float4 vertex : SV_POSITION;
                    fixed4 color : COLOR;
                    float2 texcoord : TEXCOORD0;
    #ifdef _FLIPBOOK_BLENDING
                    float3 texcoord2AndBlend : TEXCOORD1;   
    #endif
                };
    
                sampler2D _MainTex;
                float4 _MainTex_ST;
    
                fixed4 readTexture(sampler2D tex, v2f IN)
                {
                    fixed4 color = tex2D(tex, IN.texcoord);
    #ifdef _FLIPBOOK_BLENDING
                    fixed4 color2 = tex2D(tex, IN.texcoord2AndBlend.xy);
                    color = lerp(color, color2, IN.texcoord2AndBlend.z);
    #endif
                    return color;
                }
    
                v2f vert(appdata v)
                {
                    v2f o;
    
                    UNITY_SETUP_INSTANCE_ID(v);
    
                    o.color = v.color;
                    o.texcoord = v.texcoord;
    
                    vertInstancingColor(o.color);
    #ifdef _FLIPBOOK_BLENDING
                    vertInstancingUVs(v.texcoord, o.texcoord, o.texcoord2AndBlend);
    #else
                    vertInstancingUVs(v.texcoord, o.texcoord);
    #endif
    
                    o.vertex = UnityObjectToClipPos(v.vertex);
                    return o;
                }
    
                fixed4 frag(v2f i) : SV_Target
                {
                    half4 albedo = readTexture(_MainTex, i);
                    return i.color * albedo;
                }
    
                ENDCG
            }
        }
    }

    使用Instancing可以渲染更多的粒子网格,并且CPU性能更好。

    这里有10,000个球体网格,使用旧的非实例化技术,10fps:

    这里有100,000个球面网格,使用新的实例技术,可以达到100fps:

    轨道粒子速度

    Unity 2018.1为Velocity over Lifetime模块添加了一些新选项,使您可以使粒子相对于定义的中心点移动。默认情况下,中心与transform对齐,但可以在模块内修改。可以使用Orbital参数使粒子绕中心点行进,并使用Radial参数离开/朝向中心点。

    纹理形状模块

    Shape模块中的所有形状类型现在都支持纹理。纹理可用于:

    • 控制粒子颜色
    • 控制粒子alpha
    • 根据设置的的阈值和纹理通道丢弃粒子

    子发射器

    在Unity 2018.1中有两种新的产生子发射器的方法。第一种是通过触发模块,其工作方式类似于子碰撞模块产生子发射器的方式。只需在子发射器模块中选择触发器作为子发射器类型,然后当触发器模块内部满足条件时(例如粒子进入碰撞体积),相应的子发射器将被触发。

    触发子发射器的第二种新方法是通过脚本。添加了一个名为TriggerSubEmitter 的新API ,可用于为单个粒子,粒子列表或所有粒子触发子发射器。在子发射器模块中,您可以选择Manual作为生成类型,该生成类型告诉粒子系统该发射器只能通过脚本中的调用触发。也可以使用现有的类型(例如Collision 或Death ),并通过脚本为这些子发射器添加其他触发器。

    旧粒子系统退役

    继续维护旧粒子系统成了每个Unity版本的开发负担。新引擎功能(如VR和多线程渲染)需要花费更多时间来确保引擎的兼容性。当添加新的引擎功能时,需要花很多时间维护传统粒子系统代码。

    这促使Unity开发团队采取下一步措施来淘汰旧粒子系统。因此,在Unity 2018.1中将删除它的Script Bindings。

    自Unity 5.4以来,旧粒子系统已被完全弃用,Unity官方的统计显示几乎不存在使用情况。Unity团队的目标是到Unity 2018.3完全删除Legacy Particle System。

    如果这会影响到你,你有一些选择:

    加权切线(动画曲线)

    动画团队已加入对加权切线的支持,以支持Unity中的所有曲线编辑。这意味着你也可以在粒子系统中使用这个新功能!

    加权切线用法

    Unity:世界领先的游戏,VR/AR引擎
    《郑洪智的Unity2018课》,倾尽我8年的开发经验,结合最新的Unity2018,带你从入门到精通。
    目前预售拼团,5.5折!

    展开全文
  • Unity3d不久之前正式发布了Unity3d 2017.1, 这个版本的发布也宣告了Unity3d正式告别了5.x时代,并且开始已年份直接命名,开启了的纪元。那么Unity3d 2017相较上一版本到底有哪些改进呢?这介绍这些改进之前先放出...
  • 选自过去1~2周的内容: https://twitter.com/unity3d   1) https://twitter.com/aras_p/status/1044656885100675072 Unity成员分享: 我为Unity的初级/未来工程师进行了实体组件系统ECS和数据导向设计DOD的...
  • unity3d每年都更新一个大版本,更新的速度越来越快,而现在不论是线上教程还是市面上的书籍基本上都是unity3d 5.x的版本,现在unity3d已经到了 2018的大版本了,里面增加了非常多的新功能。鉴于周围对unity3d感兴趣...
  • 本章主要是 Unity3D 的基础快速入门篇,通过本章的学习,能让初学者们快速的掌握和 应用 Unity3D 软件。 本章导读 ...的学习,你可以迅速的掌握 Unity3D 的软件结构,各个板块具体的功能和作用以
  • Unity3D是一个跨平台的游戏开发引擎,它能够帮助开发者快速构建游戏场景,进行游戏开发与发布。它支持将开发好的作品发布到Windows、Mac OS、Android、iOS、Linux等多种平台。另外,Unity3D官方版本目前可以运行在...
  • Unity3D的安装

    2019-07-08 16:58:50
    Unity3D是一款游戏开发软件,如何去获取它呢? 1 进入Unity3D官网 这个过程会比较慢,耐心等待 2 点击Get start 进行获取 3 选择个人版(免费) 这时会获取Unity Hub Unity Hub桌面端应用程序旨在简化你打开Unity...
  •  Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个platforms.Unity3D由游戏引擎和编辑器。该引擎包含的软件组件,在游戏的研究与开发中最常见的和经常性的任务。发动机所涵盖的主题包括声音,图
  •  为了更好地理解游戏的软件架构和对象模型,它获得更好的外观仅有一名Unity3D的游戏引擎和编辑器是非常有用的,它的主要原则。 Unity3D 引擎  Unity3D的是一个屡获殊荣的工具,用于创建交互式3D应用程序在多个...
  • 博主上网查询了大量在Android项目中整合、嵌入Unity 3D项目的文章,都发现这个技术文章都介绍的是2018年及之前的整合方法了,然而在Unity 3D 2019及之后的版本中,以Android工程导出的Unity 3D项目架构
  • 本篇文章将和大家详细介绍Unity3d安装及使用,希望对大家的工作和学习有所帮助! 1.首先前往unity官网,选择下载个人版,免费使用,功能齐全,学习开发是完全够用了。整个安装过程需要网络的支持,如下图所示: 这...
  • 今天呢,我们来说说Unity3D中的角色控制,这篇文章并非关注于Unity3D中的某项具体内容,而是博主在经过大量的实践后所得的感悟。今天的文章从内容上可以分为2种模式、1个组件、1种模型,希望对大家学习Unity3D起到...
  • Unity3D的断点调试功能

    2018-08-24 08:58:11
    Unity3D支持编写js和c#脚本,但很多人可能不知道,其实Unity3D也能对程序进行断点调试的。 调试有两种方式,一种是使用visual studio配合unityVS来调试(较的unity版本已经不需要安装插件了),另一种是使用...
  • 对于编程零基础小白来说,Unity3D游戏开发真的是高深到无法踏足的领域吗?我认为并不是这样的。 按照我个人的理解:其实Unity本身并不是一种体系,而是计算机图形学+游戏开发+各种其他系统的一种表现。学习进阶游戏...
  • 新版本中引入不少2D的新功能,我们打开资源包管理器,可以看到2D Animation,2D IK,2D Pixel Perfect,2D SpriteShape等等。 我们先来讲讲2D Animation的功能。 2D Animation的安装 点击菜单Window &gt; ...
  • Unity3D界面介绍及入门

    2014-05-25 11:48:37
    首先,你可以在unity3d官网(http://unity3d.com/)下载版本的软件,本文中使用的是unity3d 4.0.标准版是不支持阴影的,只有专业版才支持,所以对于效果要求较高的读者,可以选择购买正版,不要使用盗版或者破解版,...
1 2 3 4 5 ... 20
收藏数 15,274
精华内容 6,109
关键字:

2018新功能 unity3d