예제 #1
0
		/// <summary>
		/// Tries to select the nearest GO that is in front of the character
		/// </summary>
		/// <returns>The newly selected GO.</returns>
		public GameObject SelectClosest(Character chr)
		{
			var gos = chr.GetObjectsInRadius(MaxSearchRadius, ObjectTypes.GameObject, true, 0);

			var sqDist = float.MaxValue;
			GameObject sel = null;
			foreach (GameObject go in gos)
			{
				// TODO: Go by angle instead of distance
				//var angle = chr.GetAngleTowards(go);
				if (sel == null ||
					(go.IsInFrontOf(chr) && chr.GetDistanceSq(go) < sqDist))
				{
					sel = go;
				}
			}

			this[chr] = sel;

			return sel;
		}