官方的东西,懒得吐槽了
(但最新官方效果已经很完善了,不需要修复,疫情过后,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图
一些对项目的解读
大牛对于各种贴图的分析
简述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加载,在家和公司也不一样,所以同样的项目会缺包
(导致不能简易化的,一键打开项目,之后测试多几遍,再重新上传整包)