Skip to content

Commit

Permalink
Updated the rest of the picker for world space
Browse files Browse the repository at this point in the history
Updated the rest of the ui to be able to be used in 3d.  Only part that
does not work is the placement of the picker on the box area not
matching up with the cursor due to not getting the math right in
HSVBoxSelector.cs
  • Loading branch information
judah4 committed Mar 11, 2015
1 parent c6e0cee commit 3fb5387
Show file tree
Hide file tree
Showing 25 changed files with 224 additions and 17 deletions.
2 changes: 1 addition & 1 deletion Assets/HSVPicker/ColorPickerTester.cs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
public class ColorPickerTester : MonoBehaviour
{

public Renderer renderer;
public new Renderer renderer;
public HSVPicker picker;

// Use this for initialization
Expand Down
25 changes: 23 additions & 2 deletions Assets/HSVPicker/HSVDragger.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class HSVDragger : MonoBehaviour
public class HSVDragger : MonoBehaviour
{

public RectTransform parentPanel;
Expand All @@ -12,6 +13,7 @@ public class HSVDragger : MonoBehaviour

public HSVPicker picker;


// Use this for initialization
void Awake () {
rectTransform = GetComponent<RectTransform>();
Expand Down Expand Up @@ -43,6 +45,9 @@ void Update () {
public void ScrollValueChanged(Vector2 value)
{

//if (scrollRect.Dragging == false)
// return;

var position = rectTransform.localPosition;
position.x = Mathf.Clamp(position.x, -parentPanel.sizeDelta.x / 2, parentPanel.sizeDelta.x / 2);
position.y = Mathf.Clamp(position.y, -parentPanel.sizeDelta.y / 2, parentPanel.sizeDelta.y / 2);
Expand All @@ -54,10 +59,26 @@ public void ScrollValueChanged(Vector2 value)
position.x /= parentPanel.sizeDelta.x;
position.y /= parentPanel.sizeDelta.y;

Debug.Log(position.x + " " + position.y);
//Debug.Log(position.x + " " + position.y);

picker.MoveCursor(position.x, position.y);

}

public void SetSelectorPosition(float posX, float posY)
{
var pos = rectTransform.localPosition;
var newPos = new Vector3(posX, posY, pos.z);

newPos.x *= parentPanel.sizeDelta.x;
newPos.y *= parentPanel.sizeDelta.y;
newPos.x -= parentPanel.sizeDelta.x / 2;
newPos.y -= parentPanel.sizeDelta.y / 2;

rectTransform.localPosition = newPos;

}



}
9 changes: 7 additions & 2 deletions Assets/HSVPicker/HSVPicker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ public class HSVPicker : MonoBehaviour {
public RawImage hsvSlider;
public RawImage hsvImage;

public HsvSliderPicker sliderPicker;
public HSVDragger colorBoxSelector;

//public InputField inputR;
//public InputField inputG;
//public InputField inputB;
Expand Down Expand Up @@ -136,7 +139,8 @@ public Color MoveCursor(float posX, float posY, bool updateInputs=true)

cursorX = posX;
cursorY = posY;
cursor.rectTransform.anchoredPosition = new Vector2(posX * hsvImage.rectTransform.rect.width, posY * hsvImage.rectTransform.rect.height - hsvImage.rectTransform.rect.height);
colorBoxSelector.SetSelectorPosition(posX, posY);
//cursor.rectTransform.anchoredPosition = new Vector2(posX * hsvImage.rectTransform.rect.width, posY * hsvImage.rectTransform.rect.height - hsvImage.rectTransform.rect.height);

currentColor = GetColor(cursorX, cursorY);
colorImage.color = currentColor;
Expand Down Expand Up @@ -185,7 +189,8 @@ public Color MovePointer(float newPos, bool updateInputs = true)

hsvImage.texture = HSVUtil.GenerateColorTexture((int)hsvImage.rectTransform.rect.width, (int)hsvImage.rectTransform.rect.height, mainColor);
}
pointer.rectTransform.anchoredPosition = new Vector2(0, -pointerPos * hsvSlider.rectTransform.rect.height);
sliderPicker.SetSliderPosition(pointerPos);
//pointer.rectTransform.anchoredPosition = new Vector2(0, -pointerPos * hsvSlider.rectTransform.rect.height);

currentColor = GetColor(cursorX, cursorY);
colorImage.color = currentColor;
Expand Down
37 changes: 25 additions & 12 deletions Assets/HSVPicker/HsvBoxSelector.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,20 @@
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class HsvBoxSelector : MonoBehaviour, IDragHandler, IPointerDownHandler {
public class HsvBoxSelector : MonoBehaviour, IPointerDownHandler//IDragHandler
{

public HSVPicker picker;
//public HSVPicker picker;
public HSVDragger dragger;
private RectTransform rectTransform;


// Use this for initialization
void Start () {

void Awake ()
{
rectTransform = GetComponent<RectTransform>();
}

// Update is called once per frame
Expand All @@ -19,16 +25,21 @@ void Update () {
void PlaceCursor(PointerEventData eventData)
{

var pos = new Vector2(eventData.position.x - picker.hsvImage.rectTransform.position.x, picker.hsvImage.rectTransform.rect.height * picker.hsvImage.transform.lossyScale.y - (picker.hsvImage.rectTransform.position.y - eventData.position.y));
// Debug.Log(pos);
pos.x /= picker.hsvImage.rectTransform.rect.width * picker.hsvImage.transform.lossyScale.x;
pos.y /= picker.hsvImage.rectTransform.rect.height * picker.hsvImage.transform.lossyScale.y;
var pos = eventData.position;

//pos.x += rectTransform.sizeDelta.x / 2;
//pos.y += rectTransform.sizeDelta.y / 2;
//pos.x /= rectTransform.sizeDelta.x;
//pos.y /= rectTransform.sizeDelta.y;

//var pos = new Vector2(eventData.worldPosition.x - picker.hsvImage.rectTransform.position.x, picker.hsvImage.rectTransform.rect.height * picker.hsvImage.transform.lossyScale.y - (picker.hsvImage.rectTransform.position.y - eventData.worldPosition.y));
Debug.Log(pos + " " + rectTransform.position);
//pos.x /= picker.hsvImage.rectTransform.rect.width * picker.hsvImage.transform.lossyScale.x;
//pos.y /= picker.hsvImage.rectTransform.rect.height * picker.hsvImage.transform.lossyScale.y;

pos.x = Mathf.Clamp(pos.x, 0, .9999f); //1 is the same as 0
pos.y = Mathf.Clamp(pos.y, 0, .9999f);

//Debug.Log(pos);
picker.MoveCursor(pos.x, pos.y);
//dragger.SetSelectorPosition(pos.x, pos.y);

}


Expand All @@ -42,4 +53,6 @@ public void OnPointerDown(PointerEventData eventData)
{
PlaceCursor(eventData);
}


}
12 changes: 12 additions & 0 deletions Assets/HSVPicker/HsvSliderPicker.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class HsvSliderPicker : MonoBehaviour, IDragHandler, IPointerDownHandler
{

public HSVPicker picker;
public Slider slider;

// Use this for initialization
void Start()
Expand Down Expand Up @@ -43,4 +45,14 @@ public void OnPointerDown(PointerEventData eventData)
{
PlacePointer(eventData);
}

public void SliderPositionChanged(float sliderValue)
{
picker.MovePointer(sliderValue);
}

internal void SetSliderPosition(float pointerPos)
{
slider.normalizedValue = pointerPos;
}
}
Binary file modified Assets/HSVPicker/PickerTest.unity
Binary file not shown.
Binary file added Assets/HSVPicker/PickerWithScrollRect.prefab
Binary file not shown.
File renamed without changes.
9 changes: 9 additions & 0 deletions Assets/HSVPicker/UtilityScripts.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 35 additions & 0 deletions Assets/HSVPicker/UtilityScripts/ColorScrollRect.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class ColorScrollRect : ScrollRect
{

public bool Dragging { get; private set; }


public override void OnInitializePotentialDrag(PointerEventData eventData)
{
Dragging = true;
base.OnInitializePotentialDrag(eventData);
}

public override void OnBeginDrag(PointerEventData eventData)
{
Dragging = true;
base.OnBeginDrag(eventData);
}

public override void OnDrag(PointerEventData eventData)
{
Dragging = true;
base.OnDrag(eventData);
}

public override void OnEndDrag(PointerEventData eventData)
{
Dragging = false;
base.OnEndDrag(eventData);
}
}
12 changes: 12 additions & 0 deletions Assets/HSVPicker/UtilityScripts/ColorScrollRect.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
File renamed without changes.
29 changes: 29 additions & 0 deletions Assets/HSVPicker/UtilityScripts/TiltWindow.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
using UnityEngine;

public class TiltWindow : MonoBehaviour
{
public Vector2 range = new Vector2(5f, 3f);

Transform mTrans;
Quaternion mStart;
Vector2 mRot = Vector2.zero;

void Start ()
{
mTrans = transform;
mStart = mTrans.localRotation;
}

void Update ()
{
Vector3 pos = Input.mousePosition;

float halfWidth = Screen.width * 0.5f;
float halfHeight = Screen.height * 0.5f;
float x = Mathf.Clamp((pos.x - halfWidth) / halfWidth, -1f, 1f);
float y = Mathf.Clamp((pos.y - halfHeight) / halfHeight, -1f, 1f);
mRot = Vector2.Lerp(mRot, new Vector2(x, y), Time.deltaTime * 5f);

mTrans.localRotation = mStart * Quaternion.Euler(-mRot.y * range.y, mRot.x * range.x, 0f);
}
}
12 changes: 12 additions & 0 deletions Assets/HSVPicker/UtilityScripts/TiltWindow.cs.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file removed Assets/PickerWithScrollRect.prefab
Binary file not shown.
9 changes: 9 additions & 0 deletions Assets/UnityVS.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 9 additions & 0 deletions Assets/UnityVS/Editor.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
20 changes: 20 additions & 0 deletions Assets/UnityVS/Editor/UnityVS.VersionSpecific.dll.meta

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 17 additions & 0 deletions UnityVS.HSV-Color-Picker-Unity.sln.DotSettings
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002EJavaScript_002EContextActions_002ESplitDeclarationsListAction/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002EJavaScript_002EContextActions_002ESplitDeclarationAction/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002EJavaScript_002EContextActions_002EReverseAssignmentAction/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002EJavaScript_002EContextActions_002ERemoveBracesAction/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002EJavaScript_002EContextActions_002EIntroduceVariableAction/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EIntentions_002EJavaScript_002EContextActions_002ECreateFromUsage_002ECreateFromUsageAction/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/ContextActionTable/DisabledContextActions/=JetBrains_002EReSharper_002EFeatures_002EWeb_002EJavaScriptXmlDocReferenceToFile_002EQuickFixes_002EAddReferenceAction/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntellisenseGloballyEnabled/IntellisenseEnabled/@EntryValue">PerTechnology</s:String>
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntellisenseEnabled/IntellisenseEnabledSettingCSharp/IntellisenseEnabled/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntellisenseEnabled/IntellisenseEnabledSettingXaml/IntellisenseEnabled/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntellisenseEnabled/IntellisenseEnabledSettingMSBuild/IntellisenseEnabled/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntellisenseEnabled/IntellisenseEnabledSettingNAnt/IntellisenseEnabled/@EntryValue">True</s:Boolean>
<s:Boolean x:Key="/Default/CodeInspection/ExcludedFiles/FileMasksToSkip/=_002A_002Ejs/@EntryIndexedValue">True</s:Boolean>
<s:String x:Key="/Default/Environment/UserInterface/ShortcutSchemeName/@EntryValue">None</s:String>
<s:Boolean x:Key="/Default/Environment/UserInterface/TipsManager/ShowTipsOnStartup/@EntryValue">False</s:Boolean>
</wpf:ResourceDictionary>

0 comments on commit 3fb5387

Please sign in to comment.