[gd_resource type="ShaderMaterial" load_steps=2 format=3] [ext_resource type="Shader" path="res://world/ocean/island.gdshader" id="1_island"] ; 主场景用的「台地岛」材质:与 ocean_demo 那座锥形岛共用同一个着色器,只改形状参数。 ; ; 关键的一组取值(相对水面 y=0,而节点本身摆在 y=-1.5,所以平顶落在世界 y=0): ; island_height = 1.5 平顶高出水面 1.5 米 —— 正好等于主场景 Ground 碰撞盒的顶面高度 ; plateau = 0.72 平顶半径 = 40 * 0.72 ≈ 28.8 米。地面碰撞盒放大到 58×58(半宽 29) ; 就是为了和这个平顶对齐,否则人会走到平顶外面掉下去 ; detail_strength = 0.25 起伏只有 ±12 厘米。碰撞是平板,起伏大了会看见脚陷进坡里 ; dip_depth = 14 岛外裙边扎到水下 14 米,从侧面看不到平面边缘 [resource] shader = ExtResource("1_island") shader_parameter/island_radius = 40.0 shader_parameter/island_height = 1.5 shader_parameter/plateau = 0.72 shader_parameter/profile_power = 1.60 shader_parameter/dip_depth = 14.0 shader_parameter/detail_strength = 0.25