🌟

【ロブロックス】UIGradientのColor設定をスクリプトからする方法

2024/07/09に公開

はじめに

公式リファレンス

https://create.roblox.com/docs/ja-jp/reference/engine/datatypes/ColorSequence

基本的なやり方

たったこれだけ。
ColorSequenceオブジェクトをUIGradientColorに代入するだけ。

	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は入れるようにしましょう。

Landelテックブログ

Discussion