Godot3 изменить цвет meshInstance - PullRequest
0 голосов
/ 26 августа 2018

Как правильно изменить цвет сетки в Godot3?

extends MeshInstance

# class member variables go here, for example:
# var a = 2
# var b = "textvar"
var i=0
export(Color) var new_color = Color(1, 1, 1, 1)
func _ready():
    var n = self
    var mat=n.get_mesh().surface_get_material(0)
    var mat2 = SpatialMaterial.new()
    mat2.albedo_color = Color(0.8, 0.0, 0.0)
    self.get_mesh().surface_set_material(0,mat2)
    set_process(true)
    # Called every time the node is added to the scene.
    # Initialization here
func _process(delta):
    randomize()
    var mat2 = SpatialMaterial.new()
    mat2.albedo_color = Color8(255, 0, 0)
    var i = rand_range(0.0,100.0)
    if i>50.0:
        self.get_mesh().surface_set_material(0,mat2)
        i=0
    else:
        mat2.albedo_color = Color8(0, 0, 255)
        self.get_mesh().surface_set_material(0,mat2)

Я попробовал этот простой код, чтобы изменить цвет сетки в движке godot3.Идея может помочь изменить цвет подсветки автомобиля, например, в какой-то игре.

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете изменить цвет материала следующим образом:

extends MeshInstance

export(Color) var new_color = Color(1, 1, 1, 1)

func _ready():
    randomize()
    get_surface_material(0).albedo_color = new_color
    set_process(true)

Вы также можете добавить переопределение материала (SpatialMaterial) в инспекторе в «GeometryInstance» и установить для его свойства albedo требуемый цвет.в вашем скрипте.

material_override.albedo_color = new_color
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...