Exemple #1
0
    private void OnSettings(float width)
    {
        GUILayout.BeginHorizontal();
        if (GUILayout.Button(sequence != null ? sequence.name : "[None Selected]", EditorStyles.toolbarDropDown, GUILayout.Width(width * 0.5f)))
        {
            GenericMenu toolsMenu = new GenericMenu();
            if (tweener != null)
            {
                for (int i = 0; i < tweener.sequences.Count; i++)
                {
                    int mIndex = i;
                    toolsMenu.AddItem(new GUIContent(tweener.sequences[mIndex].name), false, delegate() {
                        selectedSequenceIndex = mIndex;
                    });
                }
            }
            toolsMenu.AddItem(new GUIContent("[New Sequence]"), false, delegate() {
                AddTweener(Selection.activeGameObject);
                AddSequence(tweener);
            });
            GUIUtility.keyboardControl = 0;
            toolsMenu.DropDown(new Rect(3, 37, 0, 0));
            EditorGUIUtility.ExitGUI();
        }

        if (sequence != null)
        {
            wrap = sequence.wrap;
        }
        wrap = (SequenceWrap)EditorGUILayout.EnumPopup(wrap, EditorStyles.toolbarDropDown, GUILayout.Width(width * 0.5f));
        if (sequence != null)
        {
            sequence.wrap = wrap;
        }
        GUILayout.EndHorizontal();

        //-->
        GUILayout.BeginVertical();
        settingsScroll = GUILayout.BeginScrollView(settingsScroll);
        if (tweener != null)
        {
            DoSequence();
        }
        GUILayout.EndScrollView();

        GUILayout.FlexibleSpace();
        bool enabled = GUI.enabled;

        GUI.enabled = sequence != null;
        if (GUILayout.Button("Add Tween"))
        {
            GenericMenu genericMenu = new GenericMenu();
            Component[] components  = selectedGameObject.GetComponents <Component>();
            for (int i = 0; i < components.Length; i++)
            {
                PropertyInfo[] properties = components[i].GetType().GetProperties();
                for (int j = 0; j < properties.Length; j++)
                {
                    if (properties[j].CanWrite)
                    {
                        if (IsSupportedType(properties[j].PropertyType))
                        {
                            genericMenu.AddItem(new GUIContent(components[i].GetType().Name + "/" + properties[j].Name), false, AddTween, new SequenceNode(components[i], properties[j].Name));
                        }
                    }
                }

                FieldInfo[] fields = components[i].GetType().GetFields();
                for (int j = 0; j < fields.Length; j++)
                {
                    if (IsSupportedType(fields[j].FieldType))
                    {
                        genericMenu.AddItem(new GUIContent(components[i].GetType().Name + "/" + fields[j].Name), false, AddTween, new SequenceNode(components[i], fields[j].Name));
                    }
                }
            }
            genericMenu.ShowAsContext();
        }
        GUI.enabled = enabled;
        GUILayout.EndVertical();
    }
	private void OnSettings(float width){
		GUILayout.BeginHorizontal ();
		if (GUILayout.Button (sequence != null ? sequence.name : "[None Selected]", EditorStyles.toolbarDropDown, GUILayout.Width (width * 0.5f))) {
			GenericMenu toolsMenu = new GenericMenu ();
			if(tweener != null){
				for (int i=0;i<tweener.sequences.Count;i++) {
					int mIndex=i;
					toolsMenu.AddItem (new GUIContent (tweener.sequences[mIndex].name), false, delegate() {
						selectedSequenceIndex=mIndex;
					});
				}
			}
			toolsMenu.AddItem (new GUIContent ("[New Sequence]"), false, delegate() {
				AddTweener(Selection.activeGameObject);
				AddSequence(tweener);
			});
			GUIUtility.keyboardControl = 0;
			toolsMenu.DropDown (new Rect (3, 37, 0, 0));
			EditorGUIUtility.ExitGUI ();
		}
		
		if (sequence != null) {
			wrap = sequence.wrap;			
		}
		wrap = (SequenceWrap)EditorGUILayout.EnumPopup (wrap, EditorStyles.toolbarDropDown, GUILayout.Width (width * 0.5f));
		if (sequence != null) {
			sequence.wrap = wrap;			
		}
		GUILayout.EndHorizontal ();

		//-->
		GUILayout.BeginVertical ();
		settingsScroll = GUILayout.BeginScrollView (settingsScroll);
		if (tweener != null) {
			DoSequence ();
		}
		GUILayout.EndScrollView ();

		GUILayout.FlexibleSpace ();
		bool enabled = GUI.enabled;
		GUI.enabled = sequence != null;
		if (GUILayout.Button ("Add Tween")) {
			GenericMenu genericMenu = new GenericMenu ();
			Component[] components=selectedGameObject.GetComponents<Component>();
			for(int i=0;i< components.Length;i++){
				PropertyInfo[] properties=components[i].GetType().GetProperties();
				for(int j=0;j<properties.Length;j++){
					if(properties[j].CanWrite){
						if(IsSupportedType(properties[j].PropertyType)){
							genericMenu.AddItem(new GUIContent(components[i].GetType().Name+"/"+properties[j].Name),false,AddTween,new SequenceNode(components[i],properties[j].Name));
						}
					}
				}

				FieldInfo[] fields=components[i].GetType().GetFields();
				for(int j=0;j<fields.Length;j++){
					if(IsSupportedType(fields[j].FieldType)){
						genericMenu.AddItem(new GUIContent(components[i].GetType().Name+"/"+fields[j].Name),false,AddTween,new SequenceNode(components[i],fields[j].Name));
					}
				}
			}
			genericMenu.ShowAsContext ();
		}
		GUI.enabled = enabled;
		GUILayout.EndVertical ();
	}