Vector2 - Check Position


Is it possible to use two empty game objects and use their position between the two, to check if a certain object is left or right of the game objects?

So basically, lets say I have two empty objects, I want to create an ‘imaginary line’ between the two points. I want to be able to check which side of this ‘line’ my player is.

Possible? Thanks

Sure thing. :slight_smile:

Here’s a pretty simple script I wrote up you can attach to a cube in an empty scene. This automatically creates a cube to the left and right of your main cube on awake, which are point A and point B. This checks the distance between point A and point B on awake, and divides that distance by 2 to get the center line. Use left and right arrows or ‘A’ and ‘D’ keys to move your cube, and the console will print whether you are to the left, right, or origin of the centerline. Hope my example helps.

using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour 
	Transform pointA;
	Transform pointB;
	float distAB;
	float centerLine;
	void Awake()
		pointA = GameObject.CreatePrimitive(PrimitiveType.Cube).transform;
		pointB = GameObject.CreatePrimitive(PrimitiveType.Cube).transform; = "PointA"; = "PointB";
		pointA.position = transform.position + Vector3.left * 5;
		pointB.position = transform.position + Vector3.right * 5;
		distAB = Vector3.Distance(pointA.position, pointB.position);	
		centerLine = distAB / 2;
	void Update()
		if(Vector3.Distance(transform.position, pointA.position) < centerLine)
			print ("Left Side");
		if(Vector3.Distance(transform.position, pointB.position) < centerLine)
			print ("Right Side");
		if(Vector3.Distance(transform.position, pointA.position) == Vector3.Distance(transform.position, pointB.position))
			print ("CenterLine");
		transform.Translate(Vector3.right * Input.GetAxis ("Horizontal") * 3 * Time.deltaTime);