unity3d 值得学吗_unity和 unity3d要都学么 - CSDN
精华内容
参与话题
  • 移动端游戏架构设计

    万人学习 2018-10-22 21:38:03
    目前很多开发者对于游戏架构设计一无所知,只是简单的把脚本与对象进行挂接,导致在后期开发中,版本维护,功能扩展非常不方便,现在网上出现了各种版本的热更新实现,比如Lua,JS,C#Light等, ...
  • 在上一篇文章里 Unity3D - 你导入的资源,并不是Unity使用的资源 介绍过,Unity使用的资源是你无法直接操作的,那么对于图片资源,我们应该如何去处理和优化工作流程呢?图片资源的分类在Unity中,图片一般可以分为...

    在上一篇文章里 Unity3D - 你导入的资源,并不是Unity使用的资源 介绍过,Unity使用的资源是你无法直接操作的,那么对于图片资源,我们应该如何去处理和优化工作流程呢?

    图片资源的分类

    在Unity中,图片一般可以分为两种:贴图(Texture)和精灵(Sprite)。我们可以简单的理解为3D(模型使用的)图片和2D(UI使用的)图片。在可以直接选择Texture Type去更改你的导入方式。

    • Texture
      • Texture一般作为3D模型上的贴图,需要有对应的材质球并关联到相应3D网格模型去使用。一般来说Texture会是一个长宽像素都是2的n次方的正方形,这也是大部分建模软件(如maya)规定的POT(Power Of Tow)。
      • 不过并不是说非POT图片就不能使用,只是在Unity的压缩上会很吃亏,而且你导入后Unity仍然会以POT方式去生成对应的图片。
      • POT实际上可以是长方形,只要长宽都是POT就可以,但是大部分建模软件上都会使用正方形。
    • Sprite
      • Sprite一般作为UI上的图片,一般不会去制作对应的材质球。在UGUI上一般是拖动到相应的控件上就可以了。
      • Sprite是一个资源导入的方式,一个资源导入后并非只能是单个Sprite,在Sprite Mode选项上可以选择Multiple去生成多个Sprite,不过需要在Sprite Editor选项上对图片进行切割,通常需要美术参与。
      • Sprite一般对大小不会做限制,UI需要多大就用多大,但是Unity在压缩上,对4的倍数分辨率的图片支持上会更好一点(应该是方便图片在POT下的位置计算),所以在制作时可以对PS的画布大小进行适当调整。
      • Sprite在导入设置完成后建议使用 Sprite Packer 进行打包,如果你确定不打包。。。那么建议你做成POT。。。
      • 在使用 Sprite Packer 打包图集后你会发现,Unity生成的图片都是POT的。

    MiniMap

    图片资源在导入为Sprite后,我们可以看到一个MiniMap选项,该选项是生成该图片的低分辨图片(1/2,1/4,1/8。。。),这些小图会使生成的资源文件变大1/3,但是在3D渲染时Unity会根据物体显示的大小(或者距离?)自动选择不同的分辨率以提高渲染效率。
    一般来说,Sprite不会有这种需求,所以关闭这个选项可以减少包体的大小。

    而对于Texture,同样可以取消。Texture和Sprite实际上只是Unity的两种预设,当你在Texture Mode上选择Advance时,你会有很完全的导入选项。如果你确定你的3D物体不会有很多的远近变化时,选择Advance,取消MiniMap会是一个很正确的选择。而对于一般的3D物体,MiniMap带来的效率提高是值得你和用户去花费这点储存空间的。

    资源的源文件格式

    既然Unity可以使用PSD,那么你何必让美术去导出png呢?
    PSD在导入速度上不比png和jpg慢(理论上应该会快,没测试),不过文件大小确实会变大。但是如果直接使用PSD,并要求美术直接在项目目录里进行资源管理和维护,实际上是在团队流程中省出了所有不必要的压缩格式文件(再次强调,导入资源使用的文件大小并不会影响最终的包体大小 )。
    当然如果经常出现美术破坏项目目录结构的情况(上传非必要文件,命名不规范等),还是把文件发给程序比较好,而这种情况使用psd还是png那就见仁见智了,psd没有预览还是很难受的。(一般程序猿学PSD的基本操作比美术学SVN或者Unity都要快的多)

    Sprite Packer + AssetBundle的注意事项

    当你在使用AssetBundle时,你的Sprite引用实际上是Sprite Packer生成的图集的引用。所以在AssetBundle上,即便你只使用到一个图集中的一个小像素,Unity也会将该图集完整地打入AssetBundle中。所以Sprite尽量在Bundle的分包基础上去分图集。

    展开全文
  • 王者荣耀是当前非常热门的游戏。那么开发王者荣耀一样的3d手机游戏需要哪些游戏资源呢?...然后点击UI进入英雄的选择,选择英雄会显示360度可以旋转的英雄模型,英雄3d模型在unity3d中模型(model)可以用may

      王者荣耀是当前非常热门的游戏。那么开发王者荣耀一样的3d手机游戏需要哪些游戏资源呢?

      首先进入王者荣耀UI界面,看到许多图片,英雄有图片,界面需要图片。那么unity3d中二维纹理(Texture 2D)可以选择图片资源的类型,GUI 就是用于图形用户界面的图片。然后点击UI进入英雄的选择,选择英雄会显示360度可以旋转的英雄模型,英雄3d模型在unity3d中模型(model)可以用maya或3dmax的模型资源导入,模型除了它表面的多边形(meshs),还有各种贴图,unity3d中二维纹理(Texture 2D)可以选择图片用于贴图,有Normal Map 法线贴图,Lightmap 光照贴图。英雄还有他的动画(Animations),在unity3d中材质球(Materials) ,模型,动画,层级关系可以一起导入的,贴图需要自己手动导入。值得注意的是unity的着色器和3dmax和MAYA的着色器是不同的,但是导入后,untiy3d默认是自己的标准着色器。王者荣耀进入后有背景音乐,这个肯定也要导入的,导入unity3d的音频文件(Audio Files)。

      当然unity3d还有一些自己的资源编辑器,比如地图编辑器(Terrain Engine)可以在unity3d中生成地形。骨骼动画(Humanoid animations)Avatar,粒子系统曲线编辑器(Particle System Curve Editor ),动画状态机(Animation State Machine),音频效果Audio Effects可以设置各种滤波器。其实unity3d中的检视面板(Inspector)也可以做一些简单的模型编辑,比如平移,缩放,旋转。

      进入游戏后,各种英雄PK之间的伤害和掉血,这些显然需要程序代码来计算伤害,还有各种装备提高英雄的属性和伤害,这些也是需要代码来完成的,代码也是必须的资源。在unity3d中自带的代码编辑器mono,支持JS和C#。



     


    展开全文
  • Unity3D中引用Spine2D动画研究学习(一) Spine2D是一款针对游戏制作2D骨骼动画的编工具,与传统的帧动画相比,有以下特点: 由于本人是Unity程序员,关注点在于如何在Unity工具中使用控制Spine导出的...
    Unity3D中引用Spine2D动画研究学习(一)
    Spine2D是一款针对游戏制作2D骨骼动画的编工具,与传统的帧动画相比,有以下特点:


    由于本人是Unity程序员,关注点在于如何在Unity工具中使用控制Spine导出的动画数据。接下来主要介绍关于上述的问题!
    (1)从Spine2D中导出已做好的动画数据:Unity中支持JSON格式数据,因此将动画导出为JSON格式,并且勾选上Pretty print 和 Create atlas 2个选项

    最后产生3份文件:

    a.spineboy.atlas文件记录了对象模型的各个组成部分在图集中的位置信息;另外值得注意的是:该文件导入Unity之前,再加上一后缀.txt文件,因为目前Unity目前只能识别.txt文件。

    b.spineboy JSON File文件记录了该对象的各种动作数据信息;

    c.spineboy PNG 类似于NGUI的精灵图集一样


    (2)将支持Spine2D的动画的运行库导入Unity工程中,关于该资源文件可以到GitHub上获取,链接:https://github.com/EsotericSoftware/spine-runtimes/tree/master/spine-unity 这里有2种方式获取和导入它,一种是直接下载 Spine_Unity.unitypackage资源,像平常Unity添加插件资源一样导入;第二种方式下载其压缩包,将其中spine-csharp和spine-unity文件拷入Unity工程中。下面是我使用第1种方式导入Unity工程中目录结构,它里面包含了一些例子。


    (3)将上面从Spine2D导出的3份文件,拖入工程中,此时会产生另外2个相应材质和图集资源.asset文件


    (4)要想使用Spine动画数据,还需要创建SkeletonData文件,右键选择“SkeletonData”进行创建。主要设置2个参数:Atlas Assets (图集资源)和 Skeleton JSON(动画数据信息)


    (5)这样,就可以开始在Unity场景中,创建SkeletonAnimation组件对象了!选择“GameObject”--"Create Other"--"SkeletonAniamtionm"


    如此,目前已经把Spine2D制作的动画成功地在Unity中应用。至于,如何通过脚本编写来控制Spine2D动画,以后再与大家交流分享,本人也在学习当中。

    展开全文
  • Unity和Cocos2D在2D游戏开发上的对比

    万次阅读 2016-09-05 15:45:57
    Unity和Cocos2D在2D游戏开发上的对比CasualArena团队自从2008年开始就在开发Flash网页游戏。过去的一年里,他们学习不同的技术以及和3D的专业开发 ,拥有了在跨平台的移动游戏和平板游戏上的专业开发经验。这篇文章...
    Unity和Cocos2D在2D游戏开发上的对比

    CasualArena团队自从2008年开始就在开发Flash网页游戏。过去的一年里,他们学习不同的技术以及和3D的专业开发 ,拥有了在跨平台的移动游戏和平板游戏上的专业开发经验。这篇文章强调了这两个平台的不同环境以及它们之间各自不同的特点。大多数的移动游戏和平板游戏开发者都希望他们开发的游戏可以运行在不同的平台上,至少能够在IOS和安卓平台上运行。当然,用原生代码(IOS的Objective-C,安卓的JAVA)总是可以让两个或者更多平行开发得以实现,但是不建议这样做。最有效的做法是使用一个能一次开发就可以发布到多个平台的开发环境。那么问题来:该使用什么技术呢?




    除了别的之外还有各种各样的框架和技术可以使用:Unity3D,Cocos2D,Marmalade SDK以及Adobe Flash。Adobe Flash实际上只能用在你想把开发的网页游戏迅速移植到移动设备上。如果你开发的游戏很简单(如棋盘游戏),那么就可以使用Flash开发,然而,如果你的游戏比较复杂的话(如经营游戏,有大量图形或者动画的游戏等)那么就不适合用Flash做开发。Cocos2D是一个全面的框架,开源并且完全免费。
    这就是大多人使用这个技术的主要原因,胜过不完全免费的Marmalade和Unity.Unity3D仍然是开发3D游戏的主要开发平台。Unity的新版本已经包含了开发2D游戏的功能,在2D游戏开发方面也夯实了坚定的地位,Cocos和Unity是开发2D游戏的首要选择。根据我们的经验,我们推荐选择这两个中的一个来开发2D游戏。但是仍然有一个大问题:



    游戏开发的最好技术是什么:Unity还是Cocos?
    在网上你可以找到很多这两种技术的对比。在我们开发游戏之前,我们要了解相关数据和信息并决定使用那种技术。但是人们对这两种技术的对比大多都比较主观。擅长Cocos的人会偏向于Cocos。而使用Unity的人则偏向于Unity。真的极少有专业开发人员在两个平台上做对比。我们在这两种平台上都学习开发过,也有自己的主观看法:Unity是一个更清晰更好的平台。实际上更精确的回答应该是:除非你能负担的起Unity的费用,否则就选择Cocos。Unity3D比Cocos2D的技术要更为高级,虽然Cocos开源并且免费。考虑到他们的不同。在任何时候谈论Cocos2D(或者简称Cocos),我们都指的是-x,Cocos平台的延伸(最初面向iPone的平台)。



    Cocos2d相对于Unity3D的优势
    Cocos2d免费,开源和无限的使用期限。而Unity比较贵。它有免费许可证,但是专业开发人员使用的话有功能限制。许可证价格在1500美元到4500美元之间,加上税会更多,这对新入开发人员来说是个重大负担。Cocos2D使用 c++编程语言和开明的库,比Unity程序处理上稍微简单些。你可以完全查看Cocos2d的代码,根据自己需求来编辑代码 。如果你擅长 C++而且不想承担Unity的高昂使用费,Cocos2D就是最好的选择。它有很多非常好用的功能,但是和Unity相比没有什么优势。它有很好的物理引擎,并有每个功能特征都有大量实例,有一个庞大的的开发者社区来支持和改善等。但是这些Unity也有。



    Unity3D相对于Cocos2d的优势
    当然我们谈论的是2d,其他的一切,Coco不支持3d软件
    Cocos2D没有集成的环境设计。可视化接口设计要用编程实现,用C++加载和定位图片。但是你可以使用免费的外部图形编辑器CcosStudio,可以帮你在屏幕定位元素和配置某个对象。但是这个编辑器比Unity的功能少太多。Unity的编辑器完全整合在了一起。而Cocos Studio并没有,而且它的操作基于XML文件,依靠Cocos的库生成一系列图像。它存在一些bug,并不能在所有的电脑上工作。Unity图形编辑器通过拖动组件和修改参数可以很轻松的布局和设计Unity场景,加入对象,脚本,灯光特效,图形效果等。因此,它相对于Cocos2D或者Cocos Studio的布局来说大大减少了开发时间。




    编程语言
    Cocos2D使用C++语言编程,Unity3D可以使用C#和Javascript。C#和Javascript都是比C++更为强大的语言,让你的程序开发和算法更简单。同时,对那些不擅长C++的人来说,学起起来不会感到困难乏味。而且你还要担心C++的指针和内存泄漏问题。这些问题在Unity里都不会出现,让你只专注于你的游戏开发,又节省了巨大的时间。此外,代码编辑器,Unity使用MonoDevelop或者VisualStudio,比起Cocos更加稳定,方便和全面。总之,我们可以说C#/Javascript(Unity)比C++更简单,是可以节省你很多时间的高效语言。




    多平台
    两中技术都是跨平台,但是Unity更好。Cocos2D支持开发不同的移动平台包括IOS和安卓。而Unity包含了更多:游戏机平台,桌面和浏览器。如果你想要你的浏览器开发支持Facebook,那么Cocos2D就不足以胜任。但是你可以用Cocos来做浏览器的二次开发,比如用Adobe Flash,通常用来做为手机和网页游戏市场的开发。使用Unity就没有这个必要,能够很方便的导出到浏览器。Unity支持大多数游戏市场所使用的平台:手机和平板(IOS,安卓,Window Phone以及黑莓),浏览器(和 即将到来的HTML5)游戏机平台(Xbox, PlayerStation和Wii)以及桌面(PC,Mac和Linux)。此外,Unity可以特殊定制给不同设备,而Cocos2D就一个最简单的方法(例如,适合开发安卓和IOS平台游戏)。


    文档和学习时间
    Unity有丰富的文档。有清晰的教学视频和文本,有的已经翻译成了西班牙语。支持相对来说快速简洁。然而Cocos的文档很少,并且质量低劣。只有英文和少量的中文。没有支持,论坛全是没人回答的问题,要得到答案很困难。Unity学习起来比Cocos更快:图像编辑器,C#/Javascript和丰富的信息和支持会让你有个愉快的学习体验。相反,Cocos2D相对来说,除非你擅长C和XCode++,十分想学习Cocos2D的库。


    社区和附加产品
    Unity3D已经是一个非常强大的开发工具。很多人通过Aseet Store做出贡献,让Unity更强大。成百上千的开发人员在商店里售卖他们的插件,资源,和改进的东西。这些插件里有很多功能强大,必须要花钱买:3D模型,2D贴图,动画,应用程序,扩展编辑器,脚本,材质都是你能额外购买或者免费在Unity官方商店里下载到的。其中有个Ngui的插件,一款扩展的图形编辑器,为2D游戏的开发提供了巨大的帮助,减少了开发时间。Ngui Unity就像 Javascript的jQuery.而Cococs缺乏这些根本的附加产品。


    结论
    Unity昂贵但值得。大量减少开发时间的比例超过了许可证的售价。许多功能在Cocos2D里是没有的,编译也比Cocos2D更快。因此,Unity3D比Cocos2D更好。
    原文链接:
    https://en.yeeply.com/blog/comparison-between-unity-and-cocos2d-platforms-for-2d-game-developments/
    原文作者:Luis Picurelli
    展开全文
  • 今天我们来说说通过反编译Unity3D的AssetBundle来提取游戏资源,博主写这篇文章的目的并非是要教大家如何去破解一款基于Unity3D引擎开发的游戏,而是想通过今天这篇文章来告诉大家如何在开发Unity3D游戏的过程中保护...
  • Unity3D基础教程】给初学者看的Unity教程(零):如何学习Unity3D 作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明。如果你喜欢这篇文章,请点推荐。谢谢! Unity3D有什
  • 自学unity3d能找到工作吗

    千次阅读 2019-01-29 17:38:02
    Unity3D的功能令人印象深刻,也能够适应不同的游戏开发要求。游戏开发人员可以使用Unity3D创建任意类型的游戏,从世界级的RPG游戏到备受欢迎的增强现实游戏Pokemon Go.也因为如此,Unity3D备受欢迎,那么如何学习...
  • rigidbody与collider概念整理
  • [Unity3D]Unity3D游戏开发之数据持久化PlayerPrefs的使用

    万次阅读 多人点赞 2014-04-20 21:40:35
     博主今天研究了在Unity3D中的数据持久化问题。数据持久化在任何一个开发领域都是一个值得关注的问题,小到一个应用中配置文件的读写,大到数据库的管理维护,都可以看到数据持久化的身影。博主在《C#基于Linq和...
  • 如何,以及如何快速的在unity中制作出自定义字体,这个技术你值得拥有,我值得共享。不喜欢废话,直入主题了。 什么叫自定义字体? 看到没,给你一些这东西,让你变成这样的  首先,要知道,既然要快速制作,...
  • Unity3D简介

    千次阅读 2016-09-13 10:13:14
    Unity3D简介
  • Unity3D】自学之路2.0

    万次阅读 多人点赞 2020-04-07 08:40:42
    一、前言 原文主要讲的是如何从零基础入门,然后一步一步进阶的文章,包括很多学习资料,学习的网址,研究方向等,内容还是比较全面的。大家多多支持一些克森大神,关注一下他的公众号。这篇文章就将原文的内容...
  • 2018年Unity学习资源指南(精心整理)

    千次阅读 多人点赞 2018-11-27 11:33:17
    前言 进入一个领域,最直接有效的方法就是,寻找相关综述性文章,首先你需要对你入门的领域有个概括性的了解,这些包括: 1、主流的学习社区与网站。...因此,总结一下Unity相关学习资源,可能有些不足,欢迎大...
  • Unity3D 用什么语言比较好

    万次阅读 2012-06-09 10:00:15
    提供了三种可供选择的脚本编程语言:JavaScript, C# 以及 Boo。尽管它们各有各的优 ...不过在接触Unity3D之 前,我一行C#的代码都没写过,所以我必须从头起。  C#由Microsoft提出并广泛使
  • Unity中的各种坐标系及相互转化

    万次阅读 2018-01-22 16:45:44
    Unity作为一个3D开发引擎,他的各系坐标系错综复杂,过矩阵的朋友可能还绕得开,没有学会的一不小心就掉进坐标坑里面了,其实各系坐标的区别在于所建立的坐标系参照不同,下面先了解下各大坐标吧,我尽量说的通俗...
  • 版本:unity 5.4.1 语言:Unity Shader Shader Forge版本:1.32   总起: 在具体介绍Shader之前准备再写一篇有关于ShaderForge的,虽然我们可能使用代码来直接编写Shader,但拥有ShaderForge这样的可视化编辑工具...
  • Unity链接数据库(SqlServer)

    千次阅读 2016-10-03 01:11:58
    首先,在你的Unity安装目录下找到这几个文件 我的是:D:\unity\Editor\Data\Mono\lib\mono\unity 然后,将其放入你的工程Assets根目录下 如图 然后新建一个脚本 代码如下:using UnityEngine; using System...
  • Unity3D入门教程】Unity3D之GUI浅析

    万次阅读 2017-01-07 20:30:40
    一款典型的软件都会有交互界面,这些界面包括标签、按钮、拖动条等。Unity3D内置一些基本的GUI命令,可以在屏幕上绘制简单的交互控件。本文主要介绍传统的GUI。而最新加入的UGUI模块将在下一讲中介绍。
1 2 3 4 5 ... 20
收藏数 2,718
精华内容 1,087
关键字:

unity3d 值得学吗