真Unity3d_尝试修复官方效果炸裂项目BoatAttack

官方的东西,懒得吐槽了

(但最新官方效果已经很完善了,不需要修复,疫情过后,Unity国外的团队应该还是走上正轨,之前2019~2011的项目几乎摆烂的状态,才需要修复;同理,现在其他Demo项目也值得期待----------------------------- 2022)

BoatAttack官方最新github

GitHub - Verasl/BoatAttack: Demo Project using the Universal RP from Unity3D

  • 如果发现其他好的Demo项目,后面会再更新
  • 不需要lfs,拉主干即可
  • 用2020打开,升级,未必完全需要原2019.4版本
  • 进入Editor后,有部分error,但不重要
  • 默认URP已设置好
  • 貌似并不是Shadr Graph的例子
  • 打开demo_Island.unity,很完整的效果
  • 哦,对了,官方的Readme.md不用看, 不要浪费时间,看我这个文章好了

好吧 Unity 官方不能夸

假如你是Unity新手,你一开始铁定找不到 water 的 Shader 所在

虽然前面不需要用 git lfs pull 等命令(官方这个demo也做了很多lfs track),但是我已经知道了关键应该在这个问题

而且,我也已经知道“Unity能封装绝对封装,绝对让你找不到,绝对让你简单拖拉操作”(其实这个Unity官方还是需要极大的工作量,只是对开源不友好而已,本身不是缺点)

所以,我先全局搜索

        private static readonly int CameraRoll = Shader.PropertyToID("_CameraRoll");
        private static readonly int InvViewProjection = Shader.PropertyToID("_InvViewProjection");
        private static readonly int WaterDepthMap = Shader.PropertyToID("_WaterDepthMap");
        private static readonly int FoamMap = Shader.PropertyToID("_FoamMap");

无果后,果断看Package(非\BoatAttack\Library\PackageCache),发现了最终实现的Shader


			//--------------------------------------
            // GPU Instancing
            #pragma multi_compile_instancing
            #pragma multi_compile_fog

			INCLUDES//
			#include "WaterCommon.hlsl"

			//non-tess
			#pragma vertex WaterVertex
			#pragma fragment WaterFragment

然后,就可以愉快地改程序了

 (但是我这个文章下面的2019年写下的内容已经不需要了- 2022)

首先各种包体缺和冲突

这个海水向PBR轻量渲染管线新一代AOT引擎用Burst编译竞速类赛艇载具支持单人和多人基于Unity2019Unity门面Demo的项目,大牛们好像都能轻易编译,难道大牛都有神灵护体?其实编译或者获取资源的途径应该大家都一样,而碰到的问题肯定都一样,只不过大牛能解决,我们要花很多时间都解决不了而已,不过这种问题对于接受过JAVA各种开源包锻炼的程序员来说,简直不值一提;就下面的“几个”问题而已,解决了就修复好了,也学到了

Water组件出错

ExecuteAlways并不是一件容易处理的事,很容易出错,也很难排查,我们实在没必要跟风,硬着头皮去处理这些事情。官方自己的坑难道自己还不清楚?

缺Water资源(缺Foam,Res等)

幸运的,还是能找到出处

开源项目的前几个版本是最好的版本

我拉的2019.1版本

架构清晰,目标清晰,内核代码突出

后面的商业版本就添加太多商业元素,会相对稳定,但再之后就肯定少投入在架构和调整代码的工作(所有项目都是如此,说重构的谁不是在水里脱裤子的?),出错了排查困难

Ramp贴图学习

Shader 学习笔记(9) Ramp贴图_拔箭四顾心茫然的博客-CSDN博客_ramp图

一些对项目的解读

Boat Attack 项目海水技术解析 - 知乎

大牛对于各种贴图的分析

简述47种Shader Map的渲染原理与制作方法 - oayx - 博客园

有空研究一下git lfs

*Make sure you clone the repo as downloading the zip will not contain the GitLFS files(all textures/meshes etc)

LFS资源如何单独下载

貌似并没有直接方法

而且代码GIT,默认是拉master

所以最后还是要用上古乌龟神器

速度还是可以的说。。。。。

神器略叼,但我们还是要用下基本功:

cmd界面输入 >git lfs 查看一下命令

用 >git lfs pull 拉取

请慎用方法和创造方法,上面流程不一定很规范,上面截图的速度也很不“科学”

filtering content是干嘛用的?

不知道,唯一知道的是速度100K是摆设

还好,还有千千万万的人和我一样被坑,求助无门

========================================================

***首先,这并不是clone时速度太慢的问题***
文件是clone完了
但是问题出在Filtering content上
大约卡在30%的地方,快两个小时了旁边那个11kb/s就是个摆设
真心求助

‘3个小时过去了从29%变成了32%

一天之后终于好了emmm

=================================================================

用Unity2020打开BoatAttack是否可以,

最新master估计是可以的,直接打开2019分支呢

折腾了一番

发现缺包:com.unity.render-pipelines.lightweight@5.7.2

也就是lightweiht RP(!!!注意,不是UPR!!而且2个会冲突)

抖了一些小聪明,用2019新开一个空项目,下载之,然后2020导入add package from disk

而这个包又缺包:com.unity.shadergraph@5.7.2

都能在unity2019解决

放上这2个包的下载链接:

连最后的问题都解决了,

但就是基佬紫色,最后放弃了

旧的2019版本打开,基于一个旧的分支,

或者一个傻瓜版,或者伸手党,或者从大牛的指导中获得项目,可以减少一天,两天的时间,

但是自己折腾一番却是成长最快,最有成就感的

看到下面截图出现时,还有有点小激动

Git强制更新本地库和冲突解决 

1.You have not concluded your merge. (MERGE_HEAD exists)

本地有修改和提交,如何强制用远程的库更新。
出现这种情况一般是git本地有commit,但是不能更新,也不能cleanup,导致无法push到服务器。

使用git pull -f 强制更新,仍然提示 You have not concluded your merge. (MERGE_HEAD exists)。

这种情况,可以做好备份,放弃本地修改,用远程内容reset本地目录,当然新建目录重新clone也可以。

以下是使用reset命令使用远程内容强制更新本地目录,
git fetch 下载远程的库的内容,不做任何的合并,git reset 把HEAD指向刚刚下载的最新的版本。
注意,这样操作,之前所做的修改会被覆盖!!!谨慎使用!

git fetch --all

git reset --hard origin/master(根据本地版本)

打包成WinExe出现错误如何解决

BuildFailedException: Burst compiler (1.2.3) failed running

stdout:
Burst requires Visual Studio (installable via Add Component in the Unity Installer) & the C++ build tools for Visual Studio, along with the Windows 10 SDK in order to build a standalone player for Windows with X64_SSE4
Unable to determine tools version of MSVC Linker, please ensure you have visual studio installed correctly!
stderr:

整个项目傻瓜版下载链接:

BoatAttack_Unity201901修复版百度下载链接.txt_unityboatattack-Unity3D文档类资源-CSDN下载

需要Unity2019.1打开

补充一个海水包,放根目录和Assets同一层即可,貌似Unity

百度网盘 请输入提取码

zwf2

但貌似Unity2019会有一些global package,即使每个项目的Library不同,并不完全根据Library/Cache加载,在家和公司也不一样,所以同样的项目会缺包

(导致不能简易化的,一键打开项目,之后测试多几遍,再重新上传整包)

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

avi9111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值