// Init //------------------------------------------------------------------------ public void Init(apEditor editor, object loadKey, apAnimClip targetAnimGroup, FUNC_ADD_TIMELINE funcResult) { _editor = editor; _loadKey = loadKey; _funcResult = funcResult; _targetAnimClip = targetAnimGroup; _selectedLinkData = null; _linkDataList.Clear(); //타임라인을 검색해보자 //리스트에 들어가는건 한글로 바꾸기 힘들 수 있다. //_linkDataList.Add(new LinkableData(apAnimClip.LINK_TYPE.ControlParam, "Control Parameters", -1, _editor.ImageSet.Get(apImageSet.PRESET.Anim_WithControlParam))); AddLinkableData(apAnimClip.LINK_TYPE.ControlParam, "Control Parameters", -1); //"Control Parameters" //AddLinkableData(apAnimClip.LINK_TYPE.Bone, "Bones", -1); List <apModifierBase> modifiers = _targetAnimClip._targetMeshGroup._modifierStack._modifiers; for (int i = 0; i < modifiers.Count; i++) { apModifierBase curMod = modifiers[i]; if (!curMod.IsAnimated) { continue; } //"Modifier : " AddLinkableData(apAnimClip.LINK_TYPE.AnimatedModifier, "Modifier : " + curMod.DisplayName, curMod._uniqueID); } }
public virtual void OnEnable() { source = (LinkableData)target; source.linkedType = typeof(Linkable); sourceRef = serializedObject; SceneView.onSceneGUIDelegate += OnSceneGUI; GetProperties(); }
// Start is called before the first frame update void Start() { if (ActivateOnCollision == null) { ActivateOnCollision = new LinkableData <ActivationFunction>(PrintCollision); } if (ActivateOnTrigger == null) { ActivateOnTrigger = new LinkableData <ActivationFunction>(PrintTriggerCollision); } solution = new Paths(); ps = GetComponent <ParticleSystem>(); myMagic = GetComponent <ParticleMagic>(); myCollider = GetComponent <PolygonCollider2D>(); collisionPoints = new List <ParticleCollisionData>(); if (myCollider == null) { myCollider = gameObject.AddComponent <PolygonCollider2D>(); } psCollisionEvents = new List <ParticleCollisionEvent>(); }
// GUI //------------------------------------------------------------------------ void OnGUI() { int width = (int)position.width; int height = (int)position.height; if (_editor == null || _funcResult == null) { return; } Color prevColor = GUI.backgroundColor; GUI.backgroundColor = new Color(0.9f, 0.9f, 0.9f); GUI.Box(new Rect(0, 35, width, height - (90)), ""); GUI.backgroundColor = prevColor; EditorGUILayout.BeginVertical(); Texture2D iconImageCategory = _editor.ImageSet.Get(apImageSet.PRESET.Hierarchy_FoldDown); GUIStyle guiStyle_None = new GUIStyle(GUIStyle.none); guiStyle_None.normal.textColor = GUI.skin.label.normal.textColor; GUIStyle guiStyle_Selected = new GUIStyle(GUIStyle.none); if (EditorGUIUtility.isProSkin) { guiStyle_Selected.normal.textColor = Color.cyan; } else { guiStyle_Selected.normal.textColor = Color.white; } GUIStyle guiStyle_Center = new GUIStyle(GUIStyle.none); guiStyle_Center.normal.textColor = GUI.skin.label.normal.textColor; guiStyle_Center.alignment = TextAnchor.MiddleCenter; GUILayout.Space(10); //"Select Timeline Type to Add" GUILayout.Button(_editor.GetText(TEXT.DLG_SelectTimelineTypeToAdd), guiStyle_Center, GUILayout.Width(width), GUILayout.Height(15)); //<투명 버튼 GUILayout.Space(10); _scrollList = EditorGUILayout.BeginScrollView(_scrollList, GUILayout.Width(width), GUILayout.Height(height - (90))); //"Timeline Types" GUILayout.Button(new GUIContent(_editor.GetText(TEXT.DLG_TimelineTypes), iconImageCategory), guiStyle_None, GUILayout.Height(20)); //<투명 버튼 //GUILayout.Space(10); for (int i = 0; i < _linkDataList.Count; i++) { GUIStyle curGUIStyle = guiStyle_None; if (_linkDataList[i] == _selectedLinkData) { Rect lastRect = GUILayoutUtility.GetLastRect(); prevColor = GUI.backgroundColor; if (EditorGUIUtility.isProSkin) { GUI.backgroundColor = new Color(0.0f, 1.0f, 1.0f, 1.0f); } else { GUI.backgroundColor = new Color(0.4f, 0.8f, 1.0f, 1.0f); } GUI.Box(new Rect(lastRect.x, lastRect.y + 20, width, 20), ""); GUI.backgroundColor = prevColor; curGUIStyle = guiStyle_Selected; } EditorGUILayout.BeginHorizontal(GUILayout.Width(width - 50)); GUILayout.Space(15); if (GUILayout.Button(new GUIContent(" " + _linkDataList[i]._name, _linkDataList[i]._icon), curGUIStyle, GUILayout.Width(width - 35), GUILayout.Height(20))) { _selectedLinkData = _linkDataList[i]; } EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); EditorGUILayout.EndVertical(); GUILayout.Space(10); EditorGUILayout.BeginHorizontal(); bool isClose = false; if (GUILayout.Button(_editor.GetText(TEXT.DLG_Select), GUILayout.Height(30))) //"Select" { if (_selectedLinkData != null) { _funcResult(true, _loadKey, _selectedLinkData._linkType, _selectedLinkData._modifierID, _targetAnimClip); } else { _funcResult(false, _loadKey, apAnimClip.LINK_TYPE.AnimatedModifier, -1, null); } isClose = true; } if (GUILayout.Button(_editor.GetText(TEXT.DLG_Close), GUILayout.Height(30))) //"Close" { _funcResult(false, _loadKey, apAnimClip.LINK_TYPE.AnimatedModifier, -1, null); isClose = true; } EditorGUILayout.EndHorizontal(); if (isClose) { CloseDialog(); } }
public FormMagicCircle() : base() { mcType = MagicCircleType.Form; formableMagic = new LinkableData <ParticleMagic>(null); }
public MovementMagicCircle() : base() { mcType = MagicCircleType.Movement; movableMagic = new LinkableData <GameObject>(null); }