Esempio n. 1
0
 public void Reset()
 {
     Position = Vector3.zero;
     Scale = Vector3.one;
     Color = Color.white;
     mbColor = Color;
     //mbImageAnimTime = 0;
     ImageFrameIndex = 0;
     Heading = Vector3.zero;
     Velocity = Vector3.zero;
     Mass = 1;
     Acceleration = 0;
     Friction = 0;
     Force = Vector3.zero;
     Orientation = 0;
     AngularRotation = 0;
     Rotation = Vector3.zero;
     Parent = null;
     UserData = null;
 }
Esempio n. 2
0
    void DoParameterGUI(MBEmitter em)
    {
        // Header-Block
            EditorGUILayout.BeginVertical(GUI.skin.GetStyle("Box"));
            if (DoSectionHeader(em.name+": Parameters", mColHeader,true)) {

                #region Parameters Toolbar
                EditorGUILayout.BeginHorizontal();
                if (MBGUI.DoButton("Add", "Add a parameter", true)) {
                    AddParameterMenu();
                }
                if (MBGUI.DoButton("Delete", "Delete selected parameter", SelectedObject is MBParameter)) {
                    MBEditorCommands.DeleteObject();
                }
                if (MBGUI.DoButton("Clear", "Clear all parameters except Image", SelectedEmitter.Parameters.Count>0)) {
                    if (EditorUtility.DisplayDialog("Confirm", "Really strip all parameters?", "Yes", "No")) {
                        SnapshotScene("Clear parameters");
                        List<MBParameter> pars = MBUtility.GetChildren<MBParameter>(em.transform, true, false);
                        em.Parameters.Clear();
                        foreach (MBParameter p in pars) {
                            GameObject.DestroyImmediate(p.gameObject);
                        }
                        InstantiateParameterHandler();
                        Select(SelectedEmitter);
                    }
                }
                 GUILayout.Space(10);
                 if (MBGUI.DoButton("Toggle","Toggle Parameters ViewState",true)){
                     mParametersToggleState = !mParametersToggleState;
                     if (mParametersToggleState) {
                         // show all
                         foreach (MBEditorParameterHandler handler in mHandler) {
                             string label = ParameterCaption(handler);
                             if (mSectionToggleState.ContainsKey(label))
                                 mSectionToggleState.Remove(label);
                         }
                     }
                     else {
                         // hide all
                         foreach (MBEditorParameterHandler handler in mHandler) {
                             string label = ParameterCaption(handler);
                             if (mSectionToggleState.ContainsKey(label))
                                 mSectionToggleState[label] = false;
                             else
                                 mSectionToggleState.Add(label, false);
                         }
                     }
                 }
                 mParametersAutoToggleSelected = MBGUI.DoToggle("Auto-Fold", "Fold unselected Parameters", mParametersAutoToggleSelected);

             EditorGUILayout.EndHorizontal();
                #endregion

             mDetailScroll = EditorGUILayout.BeginScrollView(mDetailScroll);

                    // Call custom node handlers
                MBEditorParameterHandler[] handlers = mHandler.ToArray();
                    foreach (MBEditorParameterHandler handler in handlers) {
                        if (handler.Target != null) {
                            GUI.backgroundColor = (handler.Target == SelectedObject) ? mColParameterSelected : mColParameter;
                            EditorGUILayout.BeginVertical(mStyleHeaderStyle);
                            GUI.backgroundColor = (handler.Target == SelectedObject) ? mColParameterHeaderSelected : mColParameterHeader;
                            if (DoParameterHeader(handler)) {
                                // Needs or Excludes?
                                DoParameterInfo(handler.ParameterInfo);
                                GUI.backgroundColor = (handler.Target == SelectedObject) ? mColParameterSelected : mColParameter;
                                // OnBirthGUI
                                if (!handler.HideBirthGUI) {
                                    EditorGUILayout.BeginVertical(mStyleHeaderStyle);
                                    handler.OnBirthGUI();
                                    EditorGUILayout.EndVertical();
                                }
                                // OnLifeGUI, if animated
                                if (handler.Target.AnimatedLife) {
                                    EditorGUILayout.BeginVertical(mStyleHeaderStyle);
                                    handler.OnLifetimeGUI();
                                    EditorGUILayout.EndVertical();
                                }
                                handler.Target.Validate();
                                _NeedRepaint |= handler.NeedRepaint;
                                handler.NeedRepaint = false;
                            }
                            EditorGUILayout.EndVertical();
                        }
                    }

             EditorGUILayout.EndScrollView();
            }
        EditorGUILayout.EndVertical();
    }
Esempio n. 3
0
 /// <summary>
 /// Creates a clone of an existing emitter and adds it as a child of source
 /// </summary>
 /// <param name="source">the emitter to be cloned</param>
 /// <param name="parent">the parent of the new emitter</param>
 /// <returns>the new emitter</returns>
 public MBEmitter AddEmitter(MBEmitter source, MBObject parent)
 {
     MBEmitter em = null;
     if (source && parent.Matches(typeof(MBParticleSystem),typeof(MBAnchor),typeof(MBEmitter))) {
         if (parent is MBEmitter && ((MBEmitter)parent).IsTrail) return null;
         em = (MBEmitter)Object.Instantiate(source);
         // initialize em hierarchy
         em.SetParent(parent);
         em.mbReloadHierarchy();
         em.Transform.position = parent.Transform.position;
     }
     return em;
 }
Esempio n. 4
0
    void DoDebuggingGUI(MBEmitter em)
    {
        EditorGUILayout.BeginVertical(GUI.skin.GetStyle("Box"));
        if (DoSectionHeader("General", mColHeader, true)) {
            EditorGUILayout.BeginHorizontal();
                em.mbDebugging = MBGUI.DoToggle("Enable", "Enable visualization", em.mbDebugging);
                em.mbDebugRate = MBGUI.DoFloatSlider("Rate", "Visualization amount", em.mbDebugRate, 0f, 1f);
            EditorGUILayout.EndHorizontal();
        }
        if (DoSectionHeader("Options", mColHeader, true)) {
            EditorGUILayout.BeginHorizontal();
                em.mbDebugSize = MBGUI.DoToggle("Size", "Show size gizmo", em.mbDebugSize);
                em.mbDebugSizeCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugSizeCol);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
                em.mbDebugOrientation = MBGUI.DoToggle("Orientation", "Show orientation gizmo", em.mbDebugOrientation);
                em.mbDebugOrientationCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugOrientationCol);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
                em.mbDebugSpeed = MBGUI.DoToggle("Speed", "Show speed gizmo", em.mbDebugSpeed);
                em.mbDebugSpeedCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugSpeedCol);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
                em.mbDebugHeading = MBGUI.DoToggle("Heading", "Show heading gizmo", em.mbDebugHeading);
                em.mbDebugHeadingCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugHeadingCol);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            em.mbDebugForces = MBGUI.DoToggle("Forces", "Show forces gizmo", em.mbDebugForces);
            em.mbDebugForcesCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugForcesCol);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
            em.mbDebugZones = MBGUI.DoToggle("Zones", "Color particles affected by zones", em.mbDebugZones);
            em.mbDebugZonesCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugZonesCol);
            EditorGUILayout.EndHorizontal();
            EditorGUILayout.BeginHorizontal();
                em.mbDebugAge = MBGUI.DoToggle("Age", "Show age gizmo", em.mbDebugAge);
                em.mbDebugAgeCol = MBGUI.DoColorField("Color", "Gizmo color", em.mbDebugAgeCol);
            EditorGUILayout.EndHorizontal();

        }
    }
Esempio n. 5
0
 /// <summary>
 /// Whether an item is spawned by this pool
 /// </summary>
 /// <param name="item">an item</param>
 /// <returns>true if the item is spawned by this pool</returns>
 public bool IsSpawned(MBEmitter item)
 {
     return mSpawned.Contains(item);
 }
Esempio n. 6
0
 /// <summary>
 /// Whether an item is managed by this pool
 /// </summary>
 /// <param name="item">an item</param>
 /// <returns>true if item is managed by this pool</returns>
 public bool IsManaged(MBEmitter item)
 {
     if (mSpawned.Contains(item) || mStock.Contains(item))
         return true;
     else
         return false;
 }
Esempio n. 7
0
 /// <summary>
 /// Despawn an item and add it back to the stock
 /// </summary>
 /// <param name="item"></param>
 public void Despawn(MBEmitter item)
 {
     if (!PoolingEnabled || !PoolSource) return;
     if (IsSpawned(item)) {
     #if UNITY_4_0
         item.gameObject.SetActive(false);
     #else
         item.gameObject.active = false;
     #endif
         item.EmitterStopsPlaying -= callbackAutoDespawn;
         item.name = PoolSource.name + "_stock";
         item.Transform.position = Vector3.zero;
         mSpawned.Remove(item);
         mStock.Push(item);
     }
 }
Esempio n. 8
0
 public MBEmitter AddEmitter(MBEmitter source)
 {
     return ParticleSystem.AddEmitter(source, this);
 }