add basic auto targeting, but it needs ajustements

This commit is contained in:
jparent 2015-08-22 16:59:45 -04:00
parent 17974bed9b
commit f6181556f5
3 changed files with 25 additions and 9 deletions

Binary file not shown.

View File

@ -25,22 +25,28 @@ public class AutoTarget : MonoBehaviour {
}
public Transform GetTarget(Vector3 lookingAngle) {
Transform closest = null;
float minAngle = minAngleRange;
Debug.Log("looking direction:" + lookingAngle);
foreach (Transform t in targets) {
Vector3 targetDirection = t.transform.position - transform.position;
float realAngle = Mathf.Atan2(targetDirection.z, targetDirection.x) * Mathf.Rad2Deg;
Debug.Log("real angle:" + realAngle);
float lookAngle = Mathf.Atan2(lookingAngle.z, lookingAngle.x) * Mathf.Rad2Deg;
Debug.Log("look angle:" + lookAngle);
float dot = Vector3.Dot(targetDirection, lookingAngle);
float angle = Mathf.Acos(dot) * Mathf.Rad2Deg;
if (angle < minAngle) {
minAngle = angle;
if (Mathf.Abs(lookAngle - realAngle) < minAngle) {
minAngle = lookAngle;
closest = t;
}
}
return closest;
}

View File

@ -75,9 +75,19 @@ public class ChildController : MonoBehaviour
}
if (xLookingValue != 0 || zLookingValue != 0) {
//transform.rotation = new Quaternion(0, 1, 0, Mathf.Atan2(zLookingValue, xLookingValue));
transform.eulerAngles = new Vector3(transform.eulerAngles.x, Mathf.Atan2(xLookingValue, zLookingValue) * Mathf.Rad2Deg, transform.eulerAngles.z);
_child.target = _autoTarget.GetTarget(new Vector3(xLookingValue, 0, zLookingValue));
Transform target = _autoTarget.GetTarget(new Vector3(xLookingValue, 0, zLookingValue));
_child.target = target;
if (_child.target != null) {
transform.LookAt(_child.target);
}
else {
transform.eulerAngles = new Vector3(
transform.eulerAngles.x,
Mathf.Atan2(xLookingValue, zLookingValue) * Mathf.Rad2Deg,
transform.eulerAngles.z);
}
}
}