UNITY如何动态加载R素材?-创新互联

Daydream/Unity技術:

成都创新互联公司是专业的旺苍网站建设公司,旺苍接单;提供网站建设、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行旺苍网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

  Unity动态加载R素材-- 使用ScriptableObject和AssetBoudle

by 高煥堂

一、背景说明:
  如果您还不熟悉R素材与A素材,请您参阅:Real素材的有机次序。
  大约半年前,我为了想参与与HTC 的Vive X加速器计划而设计了概念和名词也是我当时提出的。这样的架构也适合于建立特性产业的素材和App平台。例如,台湾的莺歌镇是陶瓷/琉璃设计小城,台湾三义乡则是木雕艺术城市,这些木雕、陶瓷、琉璃设计的商业产品的虚拟化3D模型,都可以成为VR的R素材,管理在平台上,我又鼓励台北铭传大学传播系学生来帮忙做的App以进行VR营销,就变成一个VR电商平台了。无意中,发现了很棒的校企产学合作机会,不亦乐乎。最近,台湾著名的IT杂志CTimes也专文报导这项VR行业平台的商业意义和经济价值。
  这项平台技术方案也公布于HTC Vive官方论坛上。请参阅HTC Vive开发者论坛文章:" 如何在Vive上开发应用"

    --- https://www.vive.com/cn/forum/chat.php?type=developer
   或者 --- https://www.vive.com/tw/forum/chat.php?type=general

二、的经济价值:
  记得半年前,我把素材区分为两种:A素材与R素材。一开始,我并不是基于客户的方便性(Artificial)与需要性(Real)而区分的。而是从系统(产品)角度来区分的。因为平台最关键在于强势型API的制定权在谁手上,例如Android平台的SDK/API制定权在Google的OHA联盟手上,即使HTC把手机终端产品和UI做得再好,都会因API受制于人。
  基于强势型API的制定权,就把素材分为两种,然后透过我定义的API在我的平台上自由组合成为VR App,也就俗称的VR内容(content)了。这就如同日光<灯座>与<灯管>之间的关系了。

  UNITY如何动态加载R素材?

  从系统(产品)面来看,两者的区分在于:A素材是”Early-binding at development-time”就是在开发阶段就绑进去App(如房屋)里一起编译、连结,并和一起上传下载。而R素材是”Late-binding at run-time”,就是在App运行(房屋入住)阶段才透过API到平台上取得R素材来与装配上去。
  把它对应到领域上,就而言,教育只是手段,专业知识(如烘焙)才是R素材。同样一份R素材,搭配百花齐放的A素材和硬件设备,就呈现出多种表现了。例如,烘焙R素材可用古老(有框)AR呈现,可用Hololens新(无框)AR呈现,也可用Daydream VR呈现之。由于传统VR应用开发者大多力求讨好更多用户,包括2C、2B,都是在追求复制性。而在我的平台上,开创一个新的复制面向:复制到360行业!
 所以我特别强调<行业>。帮行业的创作(R素材),找更多呈现,找更多客户群。也就是旧R素材(搭配A素材成新产品)、卖新客户。而不是传统上,在老掉牙的客户群,帮他找更多东东给他们(新产品卖旧客户)。因为VR的2C不行,C不会给更多$,我们却花更多成本,就赔$了,富贵远去了!
 反之,我则鼓励大家寻求更多C群,分担精致R素材的高成本,给予C中价位,高质量VRAR内容。创业者从单一行业(R素材)出发,逐渐复制技术(及A素材)到不同行业,也分担了技术及A素材的成本。一方面,透过更多C群,分担R素材成本。另一方面,透过更多行业,分担技术及A素材成本。因而A、R素材和技术都高质量,成本因分担而下降,创造了物美价廉。若因物美占有市场,若因物美而价高,富贵相随矣!

三、实践技术:使用Unity的ScriptableObject和AssetBundle方法
  其中,大家比较常问的是:R素材必须动态加载,而不能再开发段就绑入App里,如下:

  UNITY如何动态加载R素材?

  其中,基本需求是:不要将红绿灯的构型绑入App,而直到用户运行VR App时才到伺服端实时取得红绿灯素材。那么,在实际的Daydream或HTC Vive体验平台上,又如何实现这项实实取得呢?
  其实践方法有许多种,如果您使用Unity编辑器,最简单的途径就是使用Unity的ScriptableObject技术。我们可以使用 ScriptableObject 在 Project view 建立专用的 Asset 来做设定,并将它存放在Resources文件夹中。当VR App运行中,需要用到时,才调用 Resources.Load()函数来取到设定值,若有任何修改的话,只要打开 Project view 内的 Resources文件夹修改一下即可。
  通常,一个行业的R素材资源是相当多的,而且会时常更新的,这些庞大资源全部绑入App里,本身就不合理。于是,就可以进一步将ScriptableObject打包成为AssetBundle。我们的VR App可以掌管主要逻辑或线程,当有需要某些资源(如R素材),才从外部的 AssetBundle 加载资源,这样我们常常只需要重新打包资源(R素材)的部份就能完成更新,而不需要重新编译App。
 如果不是使用Unity编辑器,也可采用其他技术,例如运用Android/Linux平台上的*.SO,或者Windows平台上的DLL来实践动态加载。其技术细节,之后再来帮您解释了。

高煥堂 教您架构思维,富贵藏在...

UNITY如何动态加载R素材?==>请看内容

~ end ~

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章名称:UNITY如何动态加载R素材?-创新互联
当前URL:http://myzitong.com/article/hpgpc.html