Я новичок в написании сценариев roblox, и я работаю над игрой. Я пытаюсь сделать игру-исследование с несколькими планетами. Я хочу, чтобы цвета на поверхности планет менялись, но я также хочу использовать гладкую местность, так как это проще в использовании и красиво выглядит. немного почитав в Интернете, я понял, что мне нужно использовать «GetMaterialColor» или «SetMaterialColor». однако «SetMaterialColor», который мне нужен, требует двух битов информации - материала и цвета.

Проблема исходит из «Материальной» части этого, так как я не знаю, как заставить сценарий распознавать, какой материал я хочу изменить. я пробовал несколько вещей, в том числе, но не ограничиваясь этим: (трава, #, #, #) (трава) (#, #, #) («Трава»), (#, #, #) («Трава», #, #, #) или даже просто (#, #, #), вообще не пытаясь получить конкретный материал

Так что да, мне нужна помощь

Вот код:

local function onTouch(hit)
    game.Workspace.Terrain:SetMaterialColor

end

script.Parent.Touched:connect(onTouch)

(после SetMaterialColor должно быть что-то, с этим мне и нужна помощь)

1
Carter Adams 19 Июл 2020 в 05:21

1 ответ

Лучший ответ

Если вы читали документацию по Terrain: SetMaterialColor () , вы увидите, что первый аргумент - это Материал тип, который является Enum. Таким образом, метод ожидает Enum (или числа, чтобы быть более точным), а не строки, обозначающей материал.

В то же время второй аргумент - это Color3, поэтому (#, #, #) не подходит, использовать его с конструктором Color3.fromRGB(#,#,#) можно. Если вы когда-нибудь не понимаете, что возвращает или ожидает метод, попробуйте обратиться к его документации на https: //developer.roblox. ru /.

Вот пример правильного использования:

workspace.Terrain:SetMaterialColor(Enum.Material.Grass, Color3.fromRGB(123,123,123))

И, конечно же, Event: Connect () вместо Event: connect ()

1
ankurbohra04 19 Июл 2020 в 03:38