diff --git a/Assets/DemoSceneScripts/PanelManager.cs b/Assets/DemoSceneScripts/PanelManager.cs
index 915a4e9..7eec123 100644
--- a/Assets/DemoSceneScripts/PanelManager.cs
+++ b/Assets/DemoSceneScripts/PanelManager.cs
@@ -6,6 +6,9 @@ public class PanelManager : MonoBehaviour
{
void Start()
{
+
+ Debug.LogError("PanelManager.Start()");
+
// IMPORTANT: depth is 1 on top higher numbers on the bottom. This means the lower the number is the closer it gets to the camera.
var playButton = UIButton.create( "playUp.png", "playDown.png", 0, 0 );
diff --git a/Assets/DemoSceneScripts/TextManager.cs b/Assets/DemoSceneScripts/TextManager.cs
index d08e7c0..43d92ac 100644
--- a/Assets/DemoSceneScripts/TextManager.cs
+++ b/Assets/DemoSceneScripts/TextManager.cs
@@ -68,7 +68,7 @@ void Start()
textWrap2 = wrapText.addTextInstance( "This should be hyphenated. Check baseline - tytyt", 0, 0, 0.5f, 1, Color.green, UITextAlignMode.Center, UITextVerticalAlignMode.Bottom );
textWrap2.positionFromBottom( 0f );
- StartCoroutine( modifyTextInstances() );
+ //StartCoroutine( modifyTextInstances() );
}
diff --git a/Assets/DemoScenes/ExtendedTextTest.unity b/Assets/DemoScenes/ExtendedTextTest.unity
index a2882f4..e09dbf7 100644
Binary files a/Assets/DemoScenes/ExtendedTextTest.unity and b/Assets/DemoScenes/ExtendedTextTest.unity differ
diff --git a/Assets/Plugins/UIToolkit/BaseElements/ITouchable.cs b/Assets/Plugins/UIToolkit/BaseElements/ITouchable.cs
index 1e3a404..533deac 100644
--- a/Assets/Plugins/UIToolkit/BaseElements/ITouchable.cs
+++ b/Assets/Plugins/UIToolkit/BaseElements/ITouchable.cs
@@ -17,12 +17,12 @@ public interface ITouchable
bool hitTest( Vector2 point );
- void onTouchBegan( Touch touch, Vector2 touchPos );
+ void onTouchBegan( UITouchWrapper touch, Vector2 touchPos );
- void onTouchMoved( Touch touch, Vector2 touchPos );
+ void onTouchMoved( UITouchWrapper touch, Vector2 touchPos );
- void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame );
+ void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame );
}
diff --git a/Assets/Plugins/UIToolkit/BaseElements/UIAbstractContainer.cs b/Assets/Plugins/UIToolkit/BaseElements/UIAbstractContainer.cs
index 97f989b..bcd430f 100644
--- a/Assets/Plugins/UIToolkit/BaseElements/UIAbstractContainer.cs
+++ b/Assets/Plugins/UIToolkit/BaseElements/UIAbstractContainer.cs
@@ -105,7 +105,19 @@ public void removeChild( UISprite child, bool removeFromManager )
if( removeFromManager )
child.manager.removeElement( child );
}
-
+
+ ///
+ /// A way to remove a container and all it holds.
+ ///
+ public void destroy()
+ {
+ while(_children.Count > 0)
+ {
+ removeChild(_children[0], true);
+ }
+
+ Object.Destroy(client);
+ }
///
/// Call this when changing multiple properties at once that result in autolayout. Must be
diff --git a/Assets/Plugins/UIToolkit/BaseElements/UIAbstractTouchableContainer.cs b/Assets/Plugins/UIToolkit/BaseElements/UIAbstractTouchableContainer.cs
index 1a418ae..555f9ce 100644
--- a/Assets/Plugins/UIToolkit/BaseElements/UIAbstractTouchableContainer.cs
+++ b/Assets/Plugins/UIToolkit/BaseElements/UIAbstractTouchableContainer.cs
@@ -25,7 +25,7 @@ public abstract class UIAbstractTouchableContainer : UIAbstractContainer, ITouch
// touch handling helpers
protected float _deltaTouch;
- protected Touch _lastTouch;
+ protected UITouchWrapper _lastTouch;
protected Vector2 _lastTouchPosition;
protected ITouchable _activeTouchable;
@@ -392,8 +392,8 @@ public bool hitTest( Vector2 point )
}
- // Touch handlers. Subclasses should override onTouchMoved
- public virtual void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers. Subclasses should override onTouchMoved
+ public virtual void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
// sanity check in case we lost a touch (happens with Unity on occassion)
if( _activeTouchable != null )
@@ -412,13 +412,13 @@ public virtual void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public virtual void onTouchMoved( Touch touch, Vector2 touchPos )
+ public virtual void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
}
- public virtual void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public virtual void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
_isDragging = false;
diff --git a/Assets/Plugins/UIToolkit/BaseElements/UIControlTemplate.cs b/Assets/Plugins/UIToolkit/BaseElements/UIControlTemplate.cs
index 220340f..5a3c933 100644
--- a/Assets/Plugins/UIToolkit/BaseElements/UIControlTemplate.cs
+++ b/Assets/Plugins/UIToolkit/BaseElements/UIControlTemplate.cs
@@ -66,20 +66,20 @@ public override bool highlighted
}
- // Touch handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
}
-public virtual void onTouchMoved( Touch touch, Vector2 touchPos )
+public virtual void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
highlighted = false;
}
diff --git a/Assets/Plugins/UIToolkit/BaseElements/UITouchableSprite.cs b/Assets/Plugins/UIToolkit/BaseElements/UITouchableSprite.cs
index ea4982d..d6be898 100644
--- a/Assets/Plugins/UIToolkit/BaseElements/UITouchableSprite.cs
+++ b/Assets/Plugins/UIToolkit/BaseElements/UITouchableSprite.cs
@@ -213,20 +213,20 @@ public override void centerize()
#region ITouchable
- // Touch handlers. Subclasses should override these to get their specific behaviour
- public virtual void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers. Subclasses should override these to get their specific behaviour
+ public virtual void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
}
- public virtual void onTouchMoved( Touch touch, Vector2 touchPos )
+ public virtual void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
}
- public virtual void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public virtual void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
highlighted = false;
}
diff --git a/Assets/Plugins/UIToolkit/Containers/UIScrollableHorizontalLayout.cs b/Assets/Plugins/UIToolkit/Containers/UIScrollableHorizontalLayout.cs
index bda7608..0521a53 100644
--- a/Assets/Plugins/UIToolkit/Containers/UIScrollableHorizontalLayout.cs
+++ b/Assets/Plugins/UIToolkit/Containers/UIScrollableHorizontalLayout.cs
@@ -62,7 +62,7 @@ protected override void clipChild( UISprite child )
#region ITouchable
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
// increment deltaTouch so we can pass on the touch if necessary
_deltaTouch += touch.deltaPosition.x;
diff --git a/Assets/Plugins/UIToolkit/Containers/UIScrollableVerticalLayout.cs b/Assets/Plugins/UIToolkit/Containers/UIScrollableVerticalLayout.cs
index 89f1767..d8b4830 100644
--- a/Assets/Plugins/UIToolkit/Containers/UIScrollableVerticalLayout.cs
+++ b/Assets/Plugins/UIToolkit/Containers/UIScrollableVerticalLayout.cs
@@ -62,7 +62,7 @@ protected override void clipChild( UISprite child )
#region ITouchable
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
// increment deltaTouch so we can pass on the touch if necessary
_deltaTouch += touch.deltaPosition.y;
diff --git a/Assets/Plugins/UIToolkit/Materials/UIToolkitMaterial.mat b/Assets/Plugins/UIToolkit/Materials/UIToolkitMaterial.mat
index dd2a85d..1afcc6d 100644
Binary files a/Assets/Plugins/UIToolkit/Materials/UIToolkitMaterial.mat and b/Assets/Plugins/UIToolkit/Materials/UIToolkitMaterial.mat differ
diff --git a/Assets/Plugins/UIToolkit/Structs/UITouchMaker.cs b/Assets/Plugins/UIToolkit/Structs/UITouchMaker.cs
index b0516db..92b68b6 100644
--- a/Assets/Plugins/UIToolkit/Structs/UITouchMaker.cs
+++ b/Assets/Plugins/UIToolkit/Structs/UITouchMaker.cs
@@ -15,16 +15,16 @@ public enum UIMouseState
///
-/// this class now exists only to allow standalones/web players to create Touch objects
+/// this class now exists only to allow standalones/web players to create UITouchWrapper objects
///
public struct UITouchMaker
{
- public static Touch createTouch( int finderId, int tapCount, Vector2 position, Vector2 deltaPos, float timeDelta, TouchPhase phase )
+ public static UITouchWrapper createTouch( int finderId, int tapCount, Vector2 position, Vector2 deltaPos, float timeDelta, TouchPhase phase )
{
- var self = new Touch();
- ValueType valueSelf = self;
- var type = typeof( Touch );
-
+ var self = new UITouchWrapper();
+ //ValueType valueSelf = self;
+ //var type = typeof( UITouchWrapper );
+ /*
type.GetField( "m_FingerId", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, finderId );
type.GetField( "m_TapCount", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, tapCount );
type.GetField( "m_Position", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, position );
@@ -32,41 +32,58 @@ public static Touch createTouch( int finderId, int tapCount, Vector2 position, V
type.GetField( "m_TimeDelta", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, timeDelta );
type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, phase );
- return (Touch)valueSelf;
+ return (UITouchWrapper)valueSelf;
+ */
+
+ self.fingerId = finderId;
+ self.tapCount = tapCount;
+ self.position = position;
+ self.deltaPosition = deltaPos;
+ self.deltaTime = timeDelta;
+ self.phase = phase;
+ return self;
}
- public static Touch createTouchFromInput( UIMouseState mouseState, ref Vector2? lastMousePosition )
+ public static UITouchWrapper createTouchFromInput( UIMouseState mouseState, ref Vector2? lastMousePosition )
{
- var self = new Touch();
- ValueType valueSelf = self;
- var type = typeof( Touch );
+ //var self = new UITouchWrapper();
+ //ValueType valueSelf = self;
+ //var type = typeof( UITouchWrapper );
+
+ var self = new UITouchWrapper();
var currentMousePosition = new Vector2( Input.mousePosition.x, Input.mousePosition.y );
+ if(lastMousePosition.HasValue)
// if we have a lastMousePosition use it to get a delta
- if( lastMousePosition.HasValue )
- type.GetField( "m_PositionDelta", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, currentMousePosition - lastMousePosition );
+ if( lastMousePosition.HasValue ) self.deltaPosition = currentMousePosition - (Vector2)lastMousePosition;
+ //type.GetField( "m_PositionDelta", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, currentMousePosition - lastMousePosition );
if( mouseState == UIMouseState.DownThisFrame ) // equivalent to touchBegan
{
- type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, TouchPhase.Began );
+ //type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, TouchPhase.Began );
+ self.phase = TouchPhase.Began;
lastMousePosition = Input.mousePosition;
}
else if( mouseState == UIMouseState.UpThisFrame ) // equivalent to touchEnded
{
- type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, TouchPhase.Ended );
+ //type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, TouchPhase.Ended );
+ self.phase = TouchPhase.Ended;
lastMousePosition = null;
}
else // UIMouseState.HeldDown - equivalent to touchMoved/Stationary
{
- type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, TouchPhase.Moved );
+ //type.GetField( "m_Phase", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, TouchPhase.Moved );
+ self.phase = TouchPhase.Moved;
lastMousePosition = Input.mousePosition;
}
- type.GetField( "m_Position", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, currentMousePosition );
+ //type.GetField( "m_Position", BindingFlags.Instance | BindingFlags.NonPublic ).SetValue( valueSelf, currentMousePosition );
+ self.position = currentMousePosition;
- return (Touch)valueSelf;
+ return self;
+ //return (UITouchWrapper)valueSelf;
}
}
#endif
\ No newline at end of file
diff --git a/Assets/Plugins/UIToolkit/Structs/UITouchWrapper.cs b/Assets/Plugins/UIToolkit/Structs/UITouchWrapper.cs
new file mode 100644
index 0000000..ba7fcf7
--- /dev/null
+++ b/Assets/Plugins/UIToolkit/Structs/UITouchWrapper.cs
@@ -0,0 +1,104 @@
+using System;
+using UnityEngine;
+
+public class UITouchWrapper
+{
+
+ private int m_FingerId = 0;
+ private Vector2 m_Position = new Vector2();
+ private Vector2 m_PositionDelta = new Vector2();
+ private float m_TimeDelta = 0f;
+ private int m_TapCount = 0;
+ private TouchPhase m_Phase = TouchPhase.Stationary;
+
+ private bool m_Locked = false;
+
+ public UITouchWrapper()
+ {
+ }
+
+
+ public bool locked
+ {
+ get
+ {
+ return m_Locked;
+ }
+
+ set
+ {
+ if(value == true) m_Locked = true;
+ }
+ }
+
+ public int fingerId
+ {
+ get
+ {
+ return this.m_FingerId;
+ }
+ set
+ {
+ if(!locked) this.m_FingerId = value;
+ }
+ }
+
+ public Vector2 position
+ {
+ get
+ {
+ return this.m_Position;
+ }
+ set
+ {
+ if(!locked) this.m_Position = value;
+ }
+ }
+ public Vector2 deltaPosition
+ {
+ get
+ {
+ return this.m_PositionDelta;
+ }
+ set
+ {
+ if(!locked) this.m_PositionDelta = value;
+ }
+ }
+
+ public float deltaTime
+ {
+ get
+ {
+ return this.m_TimeDelta;
+ }
+ set
+ {
+ if(!locked) this.m_TimeDelta = value;
+ }
+ }
+ public int tapCount
+ {
+ get
+ {
+ return this.m_TapCount;
+ }
+ set
+ {
+ if(!locked) this.m_TapCount = value;
+ }
+ }
+ public TouchPhase phase
+ {
+ get
+ {
+ return this.m_Phase;
+ }
+ set
+ {
+ if(!locked) this.m_Phase = value;
+ }
+ }
+
+}
+
diff --git a/Assets/Plugins/UIToolkit/Structs/UITouchWrapper.cs.meta b/Assets/Plugins/UIToolkit/Structs/UITouchWrapper.cs.meta
new file mode 100644
index 0000000..454f0a0
--- /dev/null
+++ b/Assets/Plugins/UIToolkit/Structs/UITouchWrapper.cs.meta
@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ce2281f7173bf46bfb43ef84feb3fb9f
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
diff --git a/Assets/Plugins/UIToolkit/UIElements/TouchInfo.cs b/Assets/Plugins/UIToolkit/UIElements/TouchInfo.cs
index 182e3d2..cb1306f 100644
--- a/Assets/Plugins/UIToolkit/UIElements/TouchInfo.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/TouchInfo.cs
@@ -43,7 +43,7 @@ public TouchInfo( SwipeDirection swipesToDetect )
}
- public void resetWithTouch( Touch touch )
+ public void resetWithTouch( UITouchWrapper touch )
{
// Initialize the detectionState only with the swipe types we want to listen for
swipeDetectionState = swipesToDetect;
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIButton.cs b/Assets/Plugins/UIToolkit/UIElements/UIButton.cs
index ff4193c..8b324e0 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIButton.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIButton.cs
@@ -85,8 +85,8 @@ public override bool highlighted
}
- // Touch handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
@@ -101,7 +101,7 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
// If someone has un-highlighted us through code we are deactivated
// and should not fire the event
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIColorPicker.cs b/Assets/Plugins/UIToolkit/UIElements/UIColorPicker.cs
index cf946d4..25395e8 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIColorPicker.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIColorPicker.cs
@@ -53,8 +53,8 @@ public Color colorPicked
}
- // Touch handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
@@ -67,7 +67,7 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
Color oldColor = colorPicked;
Vector2 textureCoord = getTouchTextureCoords(touchPos);
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIContinuousButton.cs b/Assets/Plugins/UIToolkit/UIElements/UIContinuousButton.cs
index ed07d36..24d6eed 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIContinuousButton.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIContinuousButton.cs
@@ -43,8 +43,8 @@ public UIContinuousButton( UIToolkit manager, Rect frame, int depth, UIUVRect uv
}
- // Touch handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
base.onTouchBegan( touch, touchPos );
@@ -53,7 +53,7 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
// dont fire this continously if we were asked to only fire start and end
if( !onlyFireStartAndEndEvents && onTouchIsDown != null )
@@ -61,7 +61,7 @@ public override void onTouchMoved( Touch touch, Vector2 touchPos )
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
base.onTouchEnded( touch, touchPos, touchWasInsideTouchFrame );
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIGhostJoystick.cs b/Assets/Plugins/UIToolkit/UIElements/UIGhostJoystick.cs
index dfe9307..374be1e 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIGhostJoystick.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIGhostJoystick.cs
@@ -163,7 +163,7 @@ private void layoutJoystick( Vector2 localTouchPosition )
}
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
if (currentTouchId != -1)
return;
@@ -185,7 +185,7 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
if (touch.fingerId != currentTouchId)
return;
@@ -196,7 +196,7 @@ public override void onTouchMoved( Touch touch, Vector2 touchPos )
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
if (touch.fingerId != currentTouchId)
return;
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIJoystick.cs b/Assets/Plugins/UIToolkit/UIElements/UIJoystick.cs
index 634b0ac..41f31b0 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIJoystick.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIJoystick.cs
@@ -185,7 +185,7 @@ private void layoutJoystick( Vector2 localTouchPosition )
}
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
@@ -197,13 +197,13 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
this.layoutJoystick( this.inverseTranformPoint( touchPos ) );
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
// Set highlighted to avoid calling super
highlighted = false;
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIKnob.cs b/Assets/Plugins/UIToolkit/UIElements/UIKnob.cs
index d67627b..3188e73 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIKnob.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIKnob.cs
@@ -125,9 +125,9 @@ private void updateKnobForTouchPosition( Vector2 touchPos )
}
- #region Touch Handlers
+ #region UITouchWrapper Handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
@@ -135,13 +135,13 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
this.updateKnobForTouchPosition( touchPos );
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
highlighted = false;
diff --git a/Assets/Plugins/UIToolkit/UIElements/UISlider.cs b/Assets/Plugins/UIToolkit/UIElements/UISlider.cs
index 0fabac8..81c4d7e 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UISlider.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UISlider.cs
@@ -185,8 +185,8 @@ private void updateSliderKnobForTouchPosition( Vector2 touchPos )
}
- // Touch handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
highlighted = true;
@@ -194,13 +194,13 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
this.updateSliderKnobForTouchPosition( touchPos );
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
if( touchCount == 0 )
highlighted = false;
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIStateButton.cs b/Assets/Plugins/UIToolkit/UIElements/UIStateButton.cs
index d21a2a7..98d4669 100755
--- a/Assets/Plugins/UIToolkit/UIElements/UIStateButton.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIStateButton.cs
@@ -146,7 +146,7 @@ public void addFrames( UIUVRect[] normal, UIUVRect[] highlighted )
}
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
if( touchWasInsideTouchFrame )
{
diff --git a/Assets/Plugins/UIToolkit/UIElements/UISwipeDetector.cs b/Assets/Plugins/UIToolkit/UIElements/UISwipeDetector.cs
index b4e4518..267e271 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UISwipeDetector.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UISwipeDetector.cs
@@ -61,7 +61,7 @@ public UISwipeDetector( Rect frame, int depth, UIUVRect uvFrame ):base( frame, d
}
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
if( touchInfoArray[touch.fingerId] == null )
touchInfoArray[touch.fingerId] = new TouchInfo( swipesToDetect );
@@ -71,7 +71,7 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
}
- public override void onTouchMoved( Touch touch, Vector2 touchPos )
+ public override void onTouchMoved( UITouchWrapper touch, Vector2 touchPos )
{
if( processTouchInfoWithTouch( touchInfoArray[touch.fingerId], touch ) )
{
@@ -84,7 +84,7 @@ public override void onTouchMoved( Touch touch, Vector2 touchPos )
/* Only used for debugging
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
//Debug.Log( "TOUCH ENDED" );
//Debug.Log( string.Format( "x: {0}, y: {1}", touch.position.x, touch.position.y ) );
@@ -92,7 +92,7 @@ public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasI
*/
- private bool processTouchInfoWithTouch( TouchInfo touchInfo, Touch touch )
+ private bool processTouchInfoWithTouch( TouchInfo touchInfo, UITouchWrapper touch )
{
// If we already completed the swipe detection or if none are availalbe get out of here
if( touchInfo.swipeDetectionStatus != SwipeDetectionStatus.Waiting )
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIToggleButton.cs b/Assets/Plugins/UIToolkit/UIElements/UIToggleButton.cs
index d68d178..d6d6588 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIToggleButton.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIToggleButton.cs
@@ -126,8 +126,8 @@ public bool selected
}
- // Touch handlers
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ // UITouchWrapper handlers
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
highlighted = false;
diff --git a/Assets/Plugins/UIToolkit/UIElements/UIZoomButton.cs b/Assets/Plugins/UIToolkit/UIElements/UIZoomButton.cs
index 95e6a5a..7b8c69f 100644
--- a/Assets/Plugins/UIToolkit/UIElements/UIZoomButton.cs
+++ b/Assets/Plugins/UIToolkit/UIElements/UIZoomButton.cs
@@ -68,8 +68,8 @@ public UIZoomButton( UIToolkit manager, Rect frame, int depth, UIUVRect uvFrame,
- // Touch handlers
- public override void onTouchBegan( Touch touch, Vector2 touchPos )
+ // UITouchWrapper handlers
+ public override void onTouchBegan( UITouchWrapper touch, Vector2 touchPos )
{
base.onTouchBegan( touch, touchPos );
@@ -79,7 +79,7 @@ public override void onTouchBegan( Touch touch, Vector2 touchPos )
- public override void onTouchEnded( Touch touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
+ public override void onTouchEnded( UITouchWrapper touch, Vector2 touchPos, bool touchWasInsideTouchFrame )
{
base.onTouchEnded( touch, touchPos, touchWasInsideTouchFrame );
diff --git a/Assets/Plugins/UIToolkit/UIToolkit.cs b/Assets/Plugins/UIToolkit/UIToolkit.cs
index baa01c1..fac7e64 100644
--- a/Assets/Plugins/UIToolkit/UIToolkit.cs
+++ b/Assets/Plugins/UIToolkit/UIToolkit.cs
@@ -54,7 +54,7 @@ protected void Update()
// Examine all current touches
for( int i = 0; i < Input.touchCount; i++ )
{
- lookAtTouch( Input.GetTouch( i ) );
+ lookAtTouch( wrapTouchInput(Input.GetTouch( i )) );
}
} // end if Input.touchCount
#if UNITY_EDITOR || UNITY_STANDALONE_OSX || UNITY_STANDALONE_WIN || UNITY_WEBPLAYER
@@ -97,7 +97,20 @@ protected void Update()
#endif
}
-
+
+ protected UITouchWrapper wrapTouchInput(Touch input)
+ {
+ var newTouch = new UITouchWrapper();
+ newTouch.deltaTime = input.deltaTime;
+ newTouch.deltaPosition = input.deltaPosition;
+ newTouch.position = input.position;
+ newTouch.phase = input.phase;
+ newTouch.fingerId = input.fingerId;
+ newTouch.tapCount = input.tapCount;
+ newTouch.locked = true;
+ return newTouch;
+ }
+
protected void LateUpdate()
{
// take care of updating our UVs, colors or bounds if necessary
@@ -217,10 +230,10 @@ public void addToTouchables( ITouchable touchable )
#endregion
- #region Touch management and analysis helpers
+ #region UITouchWrapper management and analysis helpers
// examines a touch and sends off began, moved and ended events
- private void lookAtTouch( Touch touch )
+ private void lookAtTouch( UITouchWrapper touch )
{
// tranform the touch position so the origin is in the top left
var fixedTouchPosition = new Vector2( touch.position.x, Screen.height - touch.position.y );