理想
luaコード
local GameObject = CS.UnityEngine.GameObject
function onloaded()
UTIL:DelayAction(3,difficultyhenkou)
end
function difficultyhenkou()
_Titletext = GameObject.Find("OverlayCanvas/WaitPlayPanel/TopPanel/TitlePanel/Text (TMP)")
_Titletext:GetComponent("TMPro.TextMeshProUGUI").color = CS.UnityEngine.Color(1,1,1,1)
_Titletext:GetComponent("TMPro.TextMeshProUGUI").enableVertexGradient = true
_Titletext:GetComponent("TMPro.TextMeshProUGUI").colorGradient.topLeft = CS.UnityEngine.Color(0,1,1,1)
_Titletext:GetComponent("TMPro.TextMeshProUGUI").colorGradient.topRight = CS.UnityEngine.Color(0,1,1,1)
_Titletext:GetComponent("TMPro.TextMeshProUGUI").colorGradient.bottomLeft = CS.UnityEngine.Color(1,0,0,1)
_Titletext:GetComponent("TMPro.TextMeshProUGUI").colorGradient.bottomRight = CS.UnityEngine.Color(1,0,0,1)
end
現実
と、このように白くなってしまいます。
上の理想画像を出すために、RuntimeHICanvasからcolorをいじったら
Error: Material 'ColorPickerAlphaMaterial' with Shader 'UI/ColorPickerAlpha' doesn't have a texture property '_MainTex'
UnityEngine.UI.CanvasUpdateRegistry:PerformUpdate()
という文がconsoleに出て来ました。
colorGradientは構造体で値を変更するには構造体を上書きする必要があります。
変更後のコードです。
local GameObject = CS.UnityEngine.GameObject local Color = CS.UnityEngine.Color function onloaded() UTIL:DelayAction(3, ChangeTitleColor) end function ChangeTitleColor() _titleText = GameObject.Find("OverlayCanvas/WaitPlayPanel/TopPanel/TitlePanel/Text (TMP)") _tmPro = _titleText:GetComponent("TMPro.TextMeshProUGUI") _tmPro.color = Color(1,1,1,1) _tmPro.enableVertexGradient = true _tmPro.colorGradient = CS.TMPro.VertexGradient( Color(0,1,1,1), Color(0,1,1,1), Color(1,0,0,1), Color(1,0,0,1) ) end