void TestTargetType <T>(ref List <string> TargetTypes, string TypeName, ref int CurrentTarget) where T : Component { if (mLocalize.GetComponent <T>() == null) { return; } TargetTypes.Add(TypeName); if ((mLocalize.mTarget as T) != null) { CurrentTarget = TargetTypes.Count - 1; } }
public override ILocalizeTarget CreateTarget(Localize cmp) { var target = cmp.GetComponent <T>(); if (target == null) { return(null); } var locTarget = ScriptableObject.CreateInstance <G>(); locTarget.mTarget = target; return(locTarget); }
public override bool IsValid(Localize cmp) { if (mTarget != null) { var mTargetCmp = mTarget as Component; if (mTargetCmp != null && mTargetCmp.gameObject != cmp.gameObject) { mTarget = null; } } if (mTarget == null) { mTarget = cmp.GetComponent <T>(); } return(mTarget != null); }
void OnGUI_Target() { List <string> TargetTypes = new List <string>(); int CurrentTarget = -1; mLocalize.FindTarget(); TestTargetType <GUIText> (ref TargetTypes, "GUIText", ref CurrentTarget); TestTargetType <TextMesh> (ref TargetTypes, "TextMesh", ref CurrentTarget); TestTargetType <AudioSource> (ref TargetTypes, "AudioSource", ref CurrentTarget); TestTargetType <GUITexture> (ref TargetTypes, "GUITexture", ref CurrentTarget); TestTargetType <SpriteRenderer> (ref TargetTypes, "SpriteRenderer", ref CurrentTarget); TestTargetType <UnityEngine.UI.Text> (ref TargetTypes, "Text", ref CurrentTarget); TestTargetType <UnityEngine.UI.Image> (ref TargetTypes, "Image", ref CurrentTarget); TestTargetType <UnityEngine.UI.RawImage> (ref TargetTypes, "RawImage", ref CurrentTarget); #if NGUI TestTargetType <UILabel> (ref TargetTypes, "NGUI UILabel", ref CurrentTarget); TestTargetType <UISprite> (ref TargetTypes, "NGUI UISprite", ref CurrentTarget); TestTargetType <UITexture> (ref TargetTypes, "NGUI UITexture", ref CurrentTarget); #endif #if DFGUI TestTargetType <dfButton> (ref TargetTypes, "DFGUI Button", ref CurrentTarget); TestTargetType <dfLabel> (ref TargetTypes, "DFGUI Label", ref CurrentTarget); TestTargetType <dfPanel> (ref TargetTypes, "DFGUI Panel", ref CurrentTarget); TestTargetType <dfSprite> (ref TargetTypes, "DFGUI Sprite", ref CurrentTarget); TestTargetType <dfRichTextLabel> (ref TargetTypes, "DFGUI RichTextLabel", ref CurrentTarget); #endif #if TK2D TestTargetType <tk2dTextMesh> (ref TargetTypes, "2DToolKit Label", ref CurrentTarget); TestTargetType <tk2dBaseSprite> (ref TargetTypes, "2DToolKit Sprite", ref CurrentTarget); #endif #if TextMeshPro || TextMeshPro_Pre53 TestTargetType <TMPro.TextMeshPro> (ref TargetTypes, "TextMeshPro Label", ref CurrentTarget); TestTargetType <TMPro.TextMeshProUGUI> (ref TargetTypes, "TextMeshPro UGUI", ref CurrentTarget); #endif #if SVG TestTargetType <SVGImporter.SVGImage> (ref TargetTypes, "SVG Image", ref CurrentTarget); TestTargetType <SVGImporter.SVGRenderer> (ref TargetTypes, "SVG Renderer", ref CurrentTarget); #endif TestTargetTypePrefab(ref TargetTypes, "Prefab", ref CurrentTarget); if (CurrentTarget == -1) { CurrentTarget = TargetTypes.Count; TargetTypes.Add("None"); } GUILayout.BeginHorizontal(); GUILayout.Label("Target:", GUILayout.Width(60)); GUI.changed = false; int index = EditorGUILayout.Popup(CurrentTarget, TargetTypes.ToArray()); if (GUI.changed) { serializedObject.ApplyModifiedProperties(); switch (TargetTypes[index]) { case "GUIText": mLocalize.mTarget = mLocalize.GetComponent <GUIText>(); break; case "TextMesh": mLocalize.mTarget = mLocalize.GetComponent <TextMesh>(); break; case "AudioSource": mLocalize.mTarget = mLocalize.GetComponent <AudioSource>(); break; case "GUITexture": mLocalize.mTarget = mLocalize.GetComponent <GUITexture>(); break; case "SpriteRenderer": mLocalize.mTarget = mLocalize.GetComponent <SpriteRenderer>(); break; case "Text": mLocalize.mTarget = mLocalize.GetComponent <UnityEngine.UI.Text>(); break; case "Image": mLocalize.mTarget = mLocalize.GetComponent <UnityEngine.UI.Image>(); break; case "RawImage": mLocalize.mTarget = mLocalize.GetComponent <UnityEngine.UI.RawImage>(); break; #if NGUI case "NGUI UILabel": mLocalize.mTarget = mLocalize.GetComponent <UILabel>(); break; case "NGUI UISprite": mLocalize.mTarget = mLocalize.GetComponent <UISprite>(); break; case "NGUI UITexture": mLocalize.mTarget = mLocalize.GetComponent <UITexture>(); break; #endif #if DFGUI case "DFGUI Button": mLocalize.mTarget = mLocalize.GetComponent <dfButton>(); break; case "DFGUI Label": mLocalize.mTarget = mLocalize.GetComponent <dfLabel>(); break; case "DFGUI Panel": mLocalize.mTarget = mLocalize.GetComponent <dfPanel>(); break; case "DFGUI Sprite": mLocalize.mTarget = mLocalize.GetComponent <dfSprite>(); break; case "DFGUI RichTextLabel": mLocalize.mTarget = mLocalize.GetComponent <dfRichTextLabel>(); break; #endif #if TK2D case "2DToolKit Label": mLocalize.mTarget = mLocalize.GetComponent <tk2dTextMesh>(); break; case "2DToolKit Sprite": mLocalize.mTarget = mLocalize.GetComponent <tk2dBaseSprite>(); break; #endif #if TextMeshPro || TextMeshPro_Pre53 case "TextMeshPro Label": mLocalize.mTarget = mLocalize.GetComponent <TMPro.TextMeshPro>(); break; case "TextMeshPro UGUI": mLocalize.mTarget = mLocalize.GetComponent <TMPro.TextMeshProUGUI>(); break; #endif #if SVG case "SVG Image": mLocalize.mTarget = mLocalize.GetComponent <SVGImporter.SVGImage>(); break; case "SVG Renderer": mLocalize.mTarget = mLocalize.GetComponent <SVGImporter.SVGRenderer>(); break; #endif case "Prefab": mLocalize.mTarget = mLocalize.transform.GetChild(0).gameObject; break; } mLocalize.FindTarget(); serializedObject.Update(); } GUILayout.EndHorizontal(); }
public override bool FindTarget(Localize cmp) { cmp.mTarget = (cmp.mTarget as T) ?? cmp.GetComponent <T>(); return(cmp.mTarget != null); }
public override bool CanLocalize(Localize cmp) { return(cmp.GetComponent <T>() != null); }