public override void OnPluginPanel(FacePaint fp, FacePaintData fpData) { _perPoly = EditorGUILayout.Toggle("Per Face", _perPoly); EditorGUILayout.LabelField("Ranges"); _h = EditorGUILayout.Slider("Hue", _h, 0, 1); _s = EditorGUILayout.Slider("Sat", _s, 0, 1); _v = EditorGUILayout.Slider("Val", _v, 0, 1); _a = EditorGUILayout.Slider("Alpha", _a, 0, 1); if (GUILayout.Button("Randomise")) { Color[] c = fpData.GetColors(); if (_perPoly) { int[] t = fpData.GetTris(); for (int i = 0; i < (t.Length / 3); ++i) { int j = i * 3; c[t[j]] = c[t[j + 1]] = c[t[j + 2]] = Randomise(c[t[j]]);; } } else { for (int i = 0; i < c.Length; ++i) { c[i] = Randomise(c[i]); } } fpData.SetColors(c); } }
public override void OnSceneGUI(FacePaint fp, FacePaintData fpData, FacePaintSceneGUIData data) { if (_collapse != _wasCollapse) { _last = null; } _wasCollapse = _collapse; bool triEvt = false; switch (data.evt) { case FacePaintSceneGUIData.SceneGUIEvent.HOVER_TRIS: case FacePaintSceneGUIData.SceneGUIEvent.M_DOWN: case FacePaintSceneGUIData.SceneGUIEvent.M_DRAG: triEvt = true; break; } // Work out whether event is duplicate of last if (_last != null && _collapse) { // If same event, don't print UNLESS triangle event if (_last.evt == data.evt) { // If triangle event, check triangle has changed if (triEvt) { // If triangle hasn't changed, don't print if (_last.triHit == data.triHit) { return; } } else { // If not triangle event, don't print return; } } } string log = "FacePaint Event: " + data.evt.ToString(); if (triEvt) { var t = fpData.GetTris(); log += " T:" + data.triHit.ToString() + " V:[" + t[data.vertsHit[0]].ToString() + ", " + t[data.vertsHit[1]].ToString() + ", " + t[data.vertsHit[1]].ToString() + "]"; } Debug.Log(log); _last = data; }