找回密码
 立即注册
查看: 257|回复: 5

学习 Unity3D 开发,有哪些资源(论坛或网站)?

[复制链接]
发表于 2024-7-15 17:31 | 显示全部楼层 |阅读模式
学习 Unity3D 开发,有哪些资源(论坛或网站)?
发表于 2024-7-15 17:31 | 显示全部楼层
Unity 推出了全新的Addressable的资源管理方案, 全网一夜间觉得不用Addressable感觉自己的资源管理方案会低一个档次,本节我们将详细的分析Addressable资源管理系统。本节主要从以下3个点来进行分析:
(1) Addressable的本质是什么?AssetsBundle是否过时了?
(2) Assetsbundle使用实战详解;
(3) 如何搭建一个资源更新服务器;
对啦!这里有个游戏开发交流小组里面聚集了一帮热爱学习游戏的零基础小白,也有一些正在从事游戏开发的技术大佬,欢迎你来交流学习。
Addressable的本质, AssetsBundle是否过时了?


上面出现了两个频繁的词汇”机制,策略”, 机制提供的功能給上层使用,策略是基于机制,来实现具体怎么用。AssetsBundle 属于底层的资源加载与管理的机制。而我们框架中做的编辑器扩展,资源管理是基于机制的使用策略
Unity引擎考虑到上面a, b, c, d等策略对普通开发者实现有难度,于是帮我们实现了Addressable,它基于AssetsBundle机制, 实现的上述a, b, c, d等功能的一整套资源管理策略。没有错,Addressable是基于AssetsBundle的


Addressable使用实战详解
AssetsBundle我们称ab, Addressable我们称aa。Addressable作为一种资源管理的策略,并不是Unity的核心机制,所以Addressable是作为一个Package来进行安装的,不是自带在引擎内部默认就有的。接下来我们按照来介绍Addressable的使用,了解它提供的策略我们如何使用,简化我们的资源管理模块的开发。
1: Addressable开发环境安装
创建一个Unity项目,打开Unity Package Manager菜单(Window/Package Manager),如图:




其中.CN的实现了资源加密策略,不带.CN的没有实现资源加密策略。安装完成后,你的项目就支持了Addressable了。打开菜单Windows/AssetManager/Addressable, 可以看到Addressable的编辑器扩展部分的工具等。


2: 创建资源管理的Groups与项目资源管理配置文件




Addressable分组配置数据


Addressable分组管理工具
3: 制作游戏资源


4: 创建分组
制作好资源以后,接下来就根据资源来进行分组打包,一般实际项目中会根据功能来,比如地图Map会导入到Map Group中。于是我们要先创建分组。打开分组可视化视图”Addressable Groups”: 点击Create 的tab, 选Group/Packed Asset, 这个时候系统就为你创建出来了一个分组,你可以rename修改名字。我项目一般按照资源的目录结构创建同名分组。这里创建了Charactors与Map两个分组。如图:


细心的同学发现了Resources 在Build In Data里面,系统内部把原来的Resources应该也当作了特殊的bundle资源包。
5:将资源指定到对应的分组
分组创建好后,我们就把资源指定到对应的分组,这样同一个分组的资源就被打包到同一个bundle里面。如上图所示,我分别把资源都拖入到了对应的分组。接下来切回到资源,勾选上资源的Addressable选项,资源所在bundle包中的路径就出来了,如图:


我们从bundle包里加载资源的时候,就可以通过这个路径,一般不用去改它。
6: 每个Group的配置文件
当我们创建出一个Group后,在AddressableAssetsData文件夹下就会创建出这个分组对应的配置文件,名字与Group的名字相同,我们可以通过修改配置文件里面的配置来对Group进行设置。如图:


点击配置文件,查看配置,




这里几个重要的配置选项我把它列举出来:
Build Path: 这个bundle资源包打包出来后是否要放入包体内部,还是要放远程服务器。RemoteBuildPath,不会被放入到安装包内部, LocalBuildPath, 放入到安装包内部。
Load Path: 去哪里加载这个bundle包,加载这个bundle包对应的url地址。可选项有LoaclLoadPath, RemoteLocalPath。是本地加载还是远程加载。
Path Prevview: 你配置完选项以后,对应的具体的path是哪里显示出来,方便我们去对应的目录查找。
如果是Build到Local,我们可以在项目的Library/com.unity.addressables/aa/Windows/StandaloneWindows64/charactors_assets_all_f70ab74dc9e5f9cc8d80cffcecdf6d1e.bundle。
如果是Build到Remote,我们可以在项目ServerData/StandaloneWindows64/map_assets_all_51ff4626a6a125ba0ce828af846f08ef.bundle
你会发现其实最后打包以后就是bundle
7: 打包bundle包
分组指定与配置好以后,接下来我们就是要打包生成bundle包了,这个很简单,只要打开AddressableGroups视图如图:


选择Build/New Build/Default Build Script。这样就可以打包所有的bundle包,在对应的目录就能看到了。
8: 资源的运行模式
每次修改了资源以后,我们都要来打bundle包,这样操作会比较麻烦, 于是Addressable提供了几个运行模式,如图


Use Asset Database: 使用Editor模式下的AssetDatabase,来模拟加载资源,这样速度最快。开发中就不用每次都去build bundle包。
Simulate Groups: 模拟真实的ab包模式下的运行。
Using Existing Build: 从打包出来的ab包中加载资源运行。
开发中我们可以直接使用Asset Database即可,开发完成打包的时候可以使用模拟与真实模式来开发。
9: 加载/卸载 bundle包中的资源
Addressable不用你去关资源到底在哪个bundle包,你只要传入资源路径就可以了,它会更具资源的路径自动去加载对应的bundle包。对于使用者而言就非常方便了。代码如下:
using UnityEngine.AddressableAssets;
Addressables.LoadAssetAsync<GameObject>("Assets/AssetsPackage/Maps/Map1.prefab").Completed += (handle) =>
{
// 预制体
GameObject prefabObj = handle.Result;
// 实例化
GameObject cubeObj = Instantiate(prefabObj);
};
不用异步,也可以用await来等。卸载资源使用Addressable.Release(资源对象),即可。


10: 远程部署,指定部署的远程服务器
我们要做热更新的时候需要指定远程的服务器,这样只要把ServerData放到资源服务器上就可以了。Addressable自己会做好资源比对,增量更新等开发者不用管我们只要配置好远程服务器,然后告诉Addressable就可以了。打开Addressable的设置,Windows/Asset Manager/Addressable/Settings


配置好你的资源服务器地址就可以了, 到此Addressable的基本使用与理念基本介绍完成。
如何搭建一个资源更新服务器


本节分享就到这里了,关注我,学习更多的Unity高级开发技巧。本文的Addressable实战做成了一个视频教程《Unity Addressable实战详解》,欢迎大家关注我们来学习。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发表于 2024-7-15 17:32 | 显示全部楼层
其实现在很多公众号、视频网站都为我们准备好了非常多的学习资源,现在难的不是整合各种学习资源,而是如何利用这些资源真正做到有效学习。
我一开始在自学Unity时候确实也整合了非常多的资源,包括C#的各种书籍、教学视频等,《Unity从入门到精通》等。一开始基本每天都怒怼C#、算法等,想着把这些东西都吃透了上手游戏开发就没有其他的问题了。然而事实是硬啃这些知识点确实太枯燥了,我并没有坚持下去,总的来说还浪费许多时间。
不过还好我个人还是很有韧性,没有直接躺平。再经过系统的复盘之后,我问了自己一个问题:目标是什么? 答:转行游戏开发。转行游戏开发需要做什么呢?
1.学习C#, C#需要全部学完吗?
后来咨询了很多的前辈,初期其实想要达到游戏开发的入行水平,其实C#只需要实现游戏脚本开发的程度即可。有了这个方向,于是我开始整理一些unity小的游戏项目,一开始就是照猫画虎,只要设计到开发语言的部分我都会截屏标记笔记。跟着网上的博主或者大佬过一遍之后,自己在复盘一遍。大概在经过不到10个左右的小游戏的练习之后,我再去复盘过去的教程或者新的教学视频之后,我发现自己整个逻辑非常清楚,甚至可以抢在教学视频之前预判接下来做哪些流程。此时,回过头来再去看C#图鉴这本书时,对C#的理解就好像是一条条小溪有了连接一下子汇聚成了大江大河。后期继续深入学习C#也没有再感觉到枯燥。
建议熟练一下这些模块(C#基础)
基本语法/数据类型/类/封装/委托/事件/接口和泛型/继承/多态/OOP
限时免费参加游戏开发训练营!!!2.Unity内容模块学习怎么安排?
我们都知道Unity内容模块非常多、非常杂。同样还是通过一些小游戏的制作摸清楚哪些是重点,哪些可以先放放。另外我还薅一些培训机构的羊毛,当时无意间刷到,然后真的免费领了大厂笔试题,还有demo直播课等。总的来说也算是把这些资源好好的利用起来了,有针对性的对后期面试可能考察的技术点下了非常多的功夫。
建议一定掌握并熟练的内容模块(Unity基础)
脚本开发/API/物理系统/动画系统/UGUI/粒子系统/Shader
3.第三点的话其实就是打磨好自己的游戏demo,然后好好准备面试。面试方面其实我个人准备的比较少。因为此前也面试过很多公司,对面试的套路都比较了解,接下来可以重点讲一下。

(1)简历:简历虽然没办打做到一定惊艳,但是完全可以认真。毫不夸张的说,一张精修过的证件照都能给你的简历加不少分。另外还要学会避重就轻、突出重点,基本上每个人都存在一两个弱势项。比如学历、工作经验、项目经验、DEMO等。如果自己的学历等不算自己优势项,那么完全可以简单带过,着重突出自己强项例如工作经验、项目经验、游戏DEMO等。这里帮大家求到了一个大厂万能简历模板,大家可以点击下方小卡片领取做一下参考。
限时免费参加游戏开发训练营!!!(2)自我介绍:自我介绍对整个面试分数的加成非常重要,并且一个好的自我介绍是展示你口才、思维逻辑、业务能力结合的一项非常有水平的考察。往往一个好的自我介绍能将面试官带入到你自己过往的一些经历里,可以在整个面试中为你争取更大的主动权。建议大家前期在搭建自我介绍时一定要用思维导图确保语言逻辑。
可以分为以下三个板块:学历背景(向面试官传达你优秀的学历)、向面试官传达你的项目经验、技能掌握的程度)、个人优势(对自己能力的一个总结)
<hr/>例如、XX经理早上好、我叫XX。非常荣幸能够获得贵公司的面试机会,接下来我将从自己的学历背景、工作经历、个人特点三方面对自己做一个简单自我介绍.....
首先,我毕业于XX大学,通过在校的学习以及参加市级XX比赛,学习到了哪些技能...从大学开始我就志愿能够进入这个行业发展,同时学生时期的技能学习也能够帮助我快速的适应这个行业。
其次,我从事过XX工作,获得XX技术和经验,我相信这些工作经验和技术的积累,一定可以快速的帮助我入职后上手当前的工作,融入整个团队。
最后,在工作能力维度上我是一个XX策划能力、执行能力并且团队意识很强的人。
           在技术能力维度上我曾经有过XX项目有带过团队开发某款游戏的经历,这款游戏对某方面技术的要求非常高,我们在开发的前期充分评估了可能出现的问题,最终结合整个项目分析出问题所在,通过整个团队的努力最终成功的完成了整个项目。
看似一段简单的自我介绍,其实非常简明且有逻辑地向面试官展现了:
(1)你的团队领导以及协作能力
(2)你的技术能力(业务能力)
(3)解决问题的能力
(4)你是否具备成功的项目经验
到这里我自己入行游戏开发的整个历程和经验就分享到这里,学习这个过程找资料很容易、整合资料需要有目的,而学习更要有方法。真心祝愿现在还在默默坚持的朋友在这条路上能够找到属于自己的风景!
发表于 2024-7-15 17:32 | 显示全部楼层
首先,无论学习Unity到哪个阶段,手头上一直要有,因为时不时就用到的两个资源:

  • Unity官方技术文档
  • Unity官方社区(包括中文社区和英文社区,可以去提问也可以搜索答案,可以根据语言掌握情况和学习习惯来选择)
最开始,Unity初学者直接看技术文档可能也无从下手,那可以去看一些初阶入门、从0到1的课程。这里推荐一个地方Unity中文课堂。官方的讲师和技术支持团队出了很多初阶开箱教程,免费付费的都有。这里小编推荐一个,号称Unity界最搞笑的相声大师高川出品的Unity入门:从0到0.1。这门课学下来,基本就解决了Unity入门最需要完成的事情:1. 学完了基础知识;2. 对Unity充满浓厚的兴趣,怀抱热情开始充满挑战的下一阶段。
Unity全球社区很多教学内容是英文的,中国的开发者理解起来有些困难,所以本地化了很多的学习内容,都放在了Unity中文课堂。Unity官方和社区内很多有名的知识博主都有合作,邀请他们开发一些原创课程内容。
这里多提一句,几乎所有官方的课程都免费,但和第三方博主合作的内容大多会收取一定费用。这样做是为了鼓励Unity原创课程的创作,也肯定了Unity博主在优质内容准备上花费的心血。其实,大部分的Unity课程博主都是Unity独立游戏开发者。不了解独立游戏开发者辛苦和煎熬的童鞋,可以去看看这个帖子:做独立游戏人有多辛苦?。他们蹚过的坑走过的弯路,都汇集成干货和课程贡献出来了,理应给他们一些支持和鼓励。
和Unity官方合作的大V博主有:Unity学者第一人雨momo、M studio、凉鞋、蓝色幻想、樱花兔、Jocker等等。在Unity中文课堂都能找到他们的课程。随便列几个:
初级课程:

  • Unity开箱:从0到0.1
  • 无代码编程:零基础入门游戏开发可视化编程教程
  • Unity Visual Effect Graph粒子系统实现篝火效果
  • C#初级课程
  • 虚拟现实之汽车模拟仿真项目开发
  • 如何用Unity打造高品质动画电影
  • FPS游戏开发基础
  • Unity Asset Store热门素材使用指南
  • 第一款移动设备上的游戏
  • 初级Visual Effect Graph粒子系统篝火效果
  • 从零开始的Unity魔法学堂
中级课程:

  • C# 知识体系构建
  • ILRuntime与代码热更新框架的搭建技巧
  • MLAPI从原理到应用
  • Unity Shade Graph实战
  • 3D RPG游戏开发核心课程
  • URP系列教程:灯光系统、RenderFeature实现透视效果、自定义后处理...
  • 独立游戏开发框架
  • Unity ECS(二) 小试牛刀
  • 深入UGUI Mask组件原理和性能深度优化
高级课程:

  • 《Windup》实时渲染动画全流程技术美术高级课程
  • 高清渲染管线(HDRP)光照权威指南
  • DOTS从原理到应用
  • Unity影视化实时渲染案例课之《异教徒》艺术效果揭秘
Unity博主的博客和B站频道(这里推荐一个【UGUI研究院】 | 雨松MOMO程序研究院),大家也可以去关注。
另外还有一个宝藏地方:Unity资源商店:Unity Asset Store - The Best Assets for Game Making。其实这就相当于卖Unity资源的淘宝店,所有资源创作者都能在上面卖自己的原创内容。虽说是“卖”,但Unity官方和社区小伙伴都发布过很多免费项目,大家可以下载下来,看看一个好的Unity项目是什么样的,怎么做出来的。
发表于 2024-7-15 17:33 | 显示全部楼层
推荐UWA学堂 和 UWA问答
UWA学堂涵盖了很多Unity/Unreal引擎相关的技术内容,以Unity的内容为主,主要是付费内容,也有很多免费课程,可以根据自己需要选择。
UWA问答是很多大佬也会时常逛逛,里面有很多优质的问答,相信可以帮助解决实际问题。
UWA博客有很多优质文章,除了每周固定发布的QA选题还有从其他平台转载的优质好文,值得一读。
发表于 2024-7-15 17:34 | 显示全部楼层
unity 相当于游戏开发的集成开发环境,涉及到游戏开发的各个方面,并且都是经过层层封装的,非常贴近于业务逻辑层,对于底层要求不高;因此,opengl,directx,c# 之类的粗略懂点就可以了。
之后的unity学习主要围绕项目来进行,例如可以参考一些项目视频:
Unity RPG MMO-火炬之光开发
自己改改代码,加加功能,这样才能快速进步
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-11-17 03:25 , Processed in 0.108069 second(s), 28 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表