我是Unity的新手(以及一般的游戏开发(,我一直在努力弄清楚如何制作会受到游戏对象影响的沙子。例如,我试图在游戏中创建一个禅宗花园,在那里你可以拔出各种耙子,沿着沙子行走来进行设计。我已经做了大量的搜索,但还不太清楚从哪里开始。我不知道是用高度贴图还是变形网格来实现它更好。我希望沙子在使用时只受耙子的影响,而不受角色足迹的影响。
这可能是一个愚蠢的问题,所以请原谅我的无知。没有提供代码,因为我甚至不知道从哪里开始实现我想要的(我唯一能找到的是基于粒子系统的,我认为这不是我想要的(。任何指导对我来说都是巨大的,因为我现在感觉智商很低
好吧,你不会从最简单的项目开始。尤其是如果你是Unity的新手,也许还有代码。但嘿,也许你会很棒!所以你需要一个着色器。这是一个为雪制作的项目,但原理与沙子相同;(
祝你好运!
首先,您可以使用高度贴图,但它需要非常精细,以便可以看到较小的高度差异。如果它基本上是唯一可以交互的东西,那么这应该是有效的。我可能会在脚本中自己定义高度图,以便对细节有更多的控制。数组的简单数组(锯齿状数组(,如float[sizex][sizey]HeightValues+a Mesh。网格也在脚本中创建。
然后使用DrawMeshNow(在Update((中(或使用沙子材质的标准网格渲染器进行渲染(主要取决于良好的沙子纹理(。
此外,使用脚本上的一些公共方法,您可以调用以更改另一个脚本(例如,当用户按下鼠标按钮时,rake对象上的脚本(的高度值。一旦发生这种情况,将使用新值更新附加网格的顶点。
我不能100%确定网格的粒度是否足够,但需要对其分辨率进行一些实验。一种更高级(和涉及(的方法是使用自定义着色器。
顺便说一句,我喜欢禅宗花园的想法!