Доработка. Теперь параметры сектора у каждого экземпляра будут свои
This commit is contained in:
@@ -13,17 +13,17 @@ func sv(val: float) -> float: return val / ($строб.scale.x / 2.0) * 0.125
|
||||
|
||||
func set_strob_visible(val: bool): $строб.visible = val
|
||||
func set_strob_center(val: Vector2): $строб.position = val
|
||||
func set_strob_dir(val: float): $строб.material.set('shader_parameter/dir', val)
|
||||
func set_strob_color(val: Color): $строб.material.set('shader_parameter/color', val)
|
||||
func set_strob_width(val: float): $строб.material.set('shader_parameter/width', val)
|
||||
func set_strob_band(val: float): $строб.material.set('shader_parameter/band', val / 125.0)
|
||||
func set_strob_radius(val: float): $строб.material.set('shader_parameter/radius', sv(val))
|
||||
func set_strob_dir(val: float): $строб.set_instance_shader_parameter('dir', val)
|
||||
func set_strob_color(val: Color): $строб.set_instance_shader_parameter('color', val)
|
||||
func set_strob_width(val: float): $строб.set_instance_shader_parameter('width', val)
|
||||
func set_strob_band(val: float): $строб.set_instance_shader_parameter('band', val / 125.0)
|
||||
func set_strob_radius(val: float): $строб.set_instance_shader_parameter('radius', sv(val))
|
||||
|
||||
func get_strob_center() -> Vector2: return $строб.position
|
||||
func get_strob_visible() -> bool: return $строб.visible
|
||||
func get_strob_width() -> float: return $строб.material.get('shader_parameter/width')
|
||||
func get_strob_band() -> float: return $строб.material.get('shader_parameter/band') * 125.0
|
||||
func get_strob_radius() -> float: return $строб.material.get('shader_parameter/radius') * 125.0
|
||||
func get_strob_width() -> float: return $строб.get_instance_shader_parameter('width')
|
||||
func get_strob_band() -> float: return $строб.get_instance_shader_parameter('band') * 125.0
|
||||
func get_strob_radius() -> float: return $строб.get_instance_shader_parameter('radius') * 125.0
|
||||
|
||||
func get_radius_outter() -> float: return material.get('shader_parameter/radius_outter')
|
||||
func get_radius_inner_0() -> float: return material.get('shader_parameter/radius_inner_0')
|
||||
|
||||
@@ -11,13 +11,6 @@ size = Vector2(1600, 1200)
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_lniyv"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("4_obn6s")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.168627)
|
||||
shader_parameter/clip_color = Color(1, 0.5, 0.5, 1)
|
||||
shader_parameter/width = 45.0
|
||||
shader_parameter/band = 0.02
|
||||
shader_parameter/radius = 0.08
|
||||
shader_parameter/dir = 0.0
|
||||
shader_parameter/inner_clip = 0.045
|
||||
|
||||
[node name="canvas" type="Sprite2D"]
|
||||
material = ExtResource("1_newdt")
|
||||
|
||||
@@ -5,18 +5,16 @@
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xo5or"]
|
||||
resource_local_to_scene = true
|
||||
shader = ExtResource("1_e0gfn")
|
||||
shader_parameter/color = Color(1, 1, 1, 0.168627)
|
||||
shader_parameter/clip_color = Color(1, 0.5, 0.5, 1)
|
||||
shader_parameter/width = 45.0
|
||||
shader_parameter/band = 0.02
|
||||
shader_parameter/radius = 0.08
|
||||
shader_parameter/dir = 0.0
|
||||
shader_parameter/inner_clip = 0.045
|
||||
|
||||
[sub_resource type="PlaceholderTexture2D" id="PlaceholderTexture2D_2lkm8"]
|
||||
|
||||
[node name="sector" type="Sprite2D"]
|
||||
material = SubResource("ShaderMaterial_xo5or")
|
||||
instance_shader_parameters/band = 0.02
|
||||
instance_shader_parameters/color = Color(1, 1, 1, 0.188235)
|
||||
instance_shader_parameters/inner_clip = 0.045
|
||||
instance_shader_parameters/radius = 0.08
|
||||
instance_shader_parameters/width = 45.0
|
||||
position = Vector2(610, 600)
|
||||
scale = Vector2(1108, 1108)
|
||||
texture = SubResource("PlaceholderTexture2D_2lkm8")
|
||||
|
||||
@@ -4,13 +4,13 @@ shader_type canvas_item;
|
||||
|
||||
/* Закрашенный сектор окружности ограниченный угловым сектором и радиусами */
|
||||
|
||||
uniform vec4 color: source_color = vec4(1, 1, 1, 1);
|
||||
uniform vec4 clip_color: source_color = vec4(1.0, 0.5, 0.5, 1.0);
|
||||
uniform float width: hint_range(0.0, 360.0, 0.1) = 45.0;
|
||||
uniform float band: hint_range(0.0, 0.125) = 0.02;
|
||||
uniform float radius: hint_range(0.0, 0.125) = 0.08;
|
||||
uniform float dir: hint_range(0.0, 360.0) = 0.0;
|
||||
uniform float inner_clip: hint_range(0.0, 0.125) = 0.045;
|
||||
instance uniform vec4 color: source_color = vec4(1, 1, 1, 1);
|
||||
instance uniform vec4 clip_color: source_color = vec4(1.0, 0.5, 0.5, 1.0);
|
||||
instance uniform float width: hint_range(0.0, 360.0, 0.1) = 45.0;
|
||||
instance uniform float band: hint_range(0.0, 0.125) = 0.02;
|
||||
instance uniform float radius: hint_range(0.0, 0.125) = 0.08;
|
||||
instance uniform float dir: hint_range(0.0, 360.0) = 0.0;
|
||||
instance uniform float inner_clip: hint_range(0.0, 0.125) = 0.045;
|
||||
|
||||
|
||||
const vec2 center = vec2(0.125, 0.125); /* Центр. Должен быть в (0.5, 0.5), но это не так */
|
||||
|
||||
Reference in New Issue
Block a user