🌟
【ロブロックス】UIGradientのColor設定をスクリプトからする方法
はじめに
公式リファレンス
基本的なやり方
たったこれだけ。
ColorSequence
オブジェクトをUIGradient
のColor
に代入するだけ。
local colorSequence = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)),
}
UIGradient.Color = colorSequence
注意点
ColorSequenceKeypoint.new
の第一引数の役割はグラデーションのどの部分の色を設定するかというところである。
グラデーションの始まりの0と1のKeypointは確実に作りましょう。
ダメな例【キーポイントが一つ】
local colorSequence = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
}
あと、このキーポイントは0から大きい数字になるような順で生成しましょう。
ダメな例【キーポイントのTimeValueの順序がバラバラ】
local colorSequence = ColorSequence.new{
--0 -> 1 -> 2という感じで生成しましょう
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(2, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
}
ColorSequenceKeypoint
を適応する方法
配列に入れた実はこの部分で詰まってました。。
色々調べた結果これで行けることが分かりました。
local keyPoints = {
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 0)),
}
local colorSequence = ColorSequence.new(keyPoints)
Referenceでは配列型は{}
この括弧で入れていたためColorSequence.new{keyPoints}
で行けるのかと思っていました(笑)
こちらで宣言する配列も中身の順序や最低限のKeypointは入れるようにしましょう。
Discussion