/// <summary> /// 指定された TMPRule を持つオブジェクトに設定を反映します /// </summary> public static void Apply(TMPRuleSettings settings, TMPRule rule) { var ruleName = rule.RuleName; if (ruleName == TMPRule.INVALID_RULE_NAME) { return; } var setting = Array.Find(settings.List, c => c.Name == ruleName); if (setting == null) { Debug.Log($"[TMPRule]「{ruleName}」に紐づく TMPRuleParam が見つかりませんでした"); return; } var textMeshPro = rule.GetComponent <TMP_Text>(); textMeshPro.font = setting.FontAsset; textMeshPro.fontMaterial = setting.Material; textMeshPro.fontStyle = setting.FontStyles; textMeshPro.color = setting.Color; if (setting.IsApplyFontSize) { textMeshPro.fontSize = setting.FontSize; } Undo.RecordObject(textMeshPro, "Apply TMP Rule"); EditorUtility.SetDirty(textMeshPro); }
//============================================================================== // 関数 //============================================================================== /// <summary> /// 有効になった時に呼び出されます /// </summary> private void OnEnable() { m_settings = TMPRuleEditorUtils.GetSettings(); // 複数選択されている場合に、選択されている // すべてのオブジェクトのパラメータを更新するために targets を参照 foreach (var n in targets.OfType <TMPRule>()) { TMPRuleEditorUtils.Apply(m_settings, n); } }