예제 #1
0
        /// <summary>Checks if the given hit was on a WorldUI. If it was, it runs the click and returns true.</summary>
        /// <param name="hit">The successful raycast hit.</param>
        public static HitResult HandleUIHit(RaycastHit hit)
        {
            HitResult result    = new HitResult();
            Transform transform = hit.transform;

            // Only occurs in physics mode - we're looking for a transform with the following name:
            if (transform.name == "PowerUI-CMesh")
            {
                // Great! Hit the main UI.
                // Which element did it come from?
                result.FindElement(hit);
            }

            return(result);
        }
예제 #2
0
        /// <summary>Checks if the given hit was on a WorldUI. If it was, it runs the click and returns true.</summary>
        /// <param name="hit">The successful raycast hit.</param>
        public static HitResult HandleWorldUIHit(RaycastHit hit)
        {
            HitResult result = new HitResult();

            Transform transform = hit.transform;

            if (WorldInputMode == InputMode.Physics)
            {
                // If we're in Physics mode, we're looking for MeshColliders on batches with the following name.
                if (transform.name == "PowerUI-CMesh")
                {
                    // We got one! Which WorldUI is it?
                    if (result.FindWorldUI(hit.transform.parent))
                    {
                        // Got the WorldUI in the result now.
                        result.FindElement(hit);
                    }
                    return(result);
                }
            }
            else if (WorldInputMode == InputMode.Screen)
            {
                // If we're in Screen mode, we're looking for a box collider with the following name.
                if (transform.name == "PowerUI-BatchBox")
                {
                    // We got one! Which WorldUI is it?
                    if (result.FindWorldUI(transform.parent))
                    {
                        // Got the WorldUI in the result now.
                        result.ScreenMode = true;

                        // Next, we need to map the location on the front of the box to our 2D point.
                        // First, whats the point relative to the box?
                        Vector3 point = transform.InverseTransformPoint(hit.point);

                        // Great - we now have a relative point from +-0.5 in x and y.
                        result.SetRelativePoint(point.x, point.y);
                    }
                    return(result);
                }
            }

            return(result);
        }
예제 #3
0
		/// <summary>Checks if the given hit was on a WorldUI. If it was, it runs the click and returns true.</summary>
		/// <param name="hit">The successful raycast hit.</param>
		public static HitResult HandleWorldUIHit(RaycastHit hit){
			HitResult result=new HitResult();
			
			Transform transform=hit.transform;
			
			if(WorldInputMode==InputMode.Physics){
				// If we're in Physics mode, we're looking for MeshColliders on batches with the following name.
				if(transform.name=="PowerUI-CMesh"){
					// We got one! Which WorldUI is it?
					if(result.FindWorldUI(hit.transform.parent)){
						// Got the WorldUI in the result now.
						result.FindElement(hit);
					}
					return result;
				}
			}else if(WorldInputMode==InputMode.Screen){
				// If we're in Screen mode, we're looking for a box collider with the following name.
				if(transform.name=="PowerUI-BatchBox"){
					// We got one! Which WorldUI is it?
					if(result.FindWorldUI(transform.parent)){
						// Got the WorldUI in the result now.
						result.ScreenMode=true;
						
						// Next, we need to map the location on the front of the box to our 2D point.
						// First, whats the point relative to the box?
						Vector3 point=transform.InverseTransformPoint(hit.point);
						
						// Great - we now have a relative point from +-0.5 in x and y.
						result.SetRelativePoint(point.x,point.y);
					}
					return result;
				}
			}
			
			return result;
		}
예제 #4
0
		/// <summary>Checks if the given hit was on a WorldUI. If it was, it runs the click and returns true.</summary>
		/// <param name="hit">The successful raycast hit.</param>
		public static HitResult HandleUIHit(RaycastHit hit){
			HitResult result=new HitResult();
			Transform transform=hit.transform;
			
			// Only occurs in physics mode - we're looking for a transform with the following name:
			if(transform.name=="PowerUI-CMesh"){
				// Great! Hit the main UI.
				// Which element did it come from?
				result.FindElement(hit);
			}
			
			return result;
		}