(Сценарий Roblox) требуется справка для GetMaterialColor или SetMaterialColor

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

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

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

вот код:

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

end

script.Parent.Touched:connect(onTouch)

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


person Carter Adams    schedule 19.07.2020    source источник
comment
Я думаю, тебе стоит сделать это так, как будто game.Workspace.Terrain:SetMaterialColor(Enum.Material.Grass, Color3.new(0.596078, 0.760784, 0.858824)) Я совершенно не в нужном тебе цвете. Пожалуйста, ознакомьтесь с этим обсуждением использования Материала devforum.roblox. com / t / и документы в Color developer.roblox .com / ru-ru / api-reference / datatype / Color3   -  person Pavlo Strokov    schedule 19.07.2020


Ответы (1)


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

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

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

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

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

person ankurbohra04    schedule 19.07.2020
comment
Хотя они оба поддерживаются, использование устаревших методов - плохая привычка, не говоря уже о том, что это нарушает согласованность методов, являющихся PascalCase, отсюда и упоминание. - person ankurbohra04; 19.07.2020
comment
Хорошо, протестировал его, и он работал нормально! строчная буква C в Event: connect () все еще работала, не знаю почему. совет все же был хорош, и это то, что важно! - person Carter Adams; 19.07.2020