public IEnumerator RotateTowardsMovePositionTest() { GameObject character = MonoBehaviour.Instantiate(Resources.Load <GameObject>("PreFabs/Character")); character.transform.position = new Vector2(0, 0); MoveTowardPosition moveScript = character.GetComponent <MoveTowardPosition>(); RotateTowardMovementTarget rotateScript = character.GetComponent <RotateTowardMovementTarget>(); character.transform.position = new Vector3(0, 0); Vector2 targetPosition = new Vector2(1, 1); moveScript.moveToPosition(targetPosition); rotateScript.rotateTowardsTargetPosition(); Quaternion actual = character.transform.rotation; Quaternion expected = Quaternion.Euler(new Vector3(0, 0, -45 + rotateScript.rotationOffset)); string errorMessage = ""; errorMessage += "The Rotation Test failed it had: "; errorMessage += "/nActual rotation of: "; errorMessage += actual; errorMessage += "/nExpected rotation of: "; errorMessage += expected; errorMessage += "/nActual eular angle of "; errorMessage += actual.eulerAngles; errorMessage += "/nExpected eular angle of "; errorMessage += expected.eulerAngles; Assert.True(actual.eulerAngles.z.Equals(expected.eulerAngles.z), errorMessage); MonoBehaviour.Destroy(character); yield return(null); }
void Start() { moveTowardPositionScript = GetComponent <MoveTowardPosition>(); if (moveTowardPositionScript == null) { Debug.Log("RotateTowardMovementTarget in " + this.gameObject.name + " needs a MoveTowardPosition."); } }
public void rotateTowardsTargetPosition() { if (moveTowardPositionScript == null) { moveTowardPositionScript = GetComponent <MoveTowardPosition>(); } Vector2 movementTargetPosition = moveTowardPositionScript.getCurrentTargetPosition(); Vector2 rotationTargetPosition = getCurrentTargetPosition(); if (!movementTargetPosition.Equals(rotationTargetPosition)) { rotateToPosition(movementTargetPosition); } }
public IEnumerator MovesAwayTest() { GameObject character = MonoBehaviour.Instantiate(Resources.Load <GameObject>("PreFabs/Character")); MoveTowardPosition moveTowardPosition = character.GetComponent <MoveTowardPosition>(); Vector3 expected = character.transform.position; yield return(null); moveTowardPosition.moveToPosition(new Vector2(1, 1)); Time.timeScale = 100; yield return(new WaitForSeconds(1)); Vector3 actual = character.transform.position; Assert.False(actual.Equals(expected)); MonoBehaviour.Destroy(character); }
public IEnumerator DifferentRotationTest() { GameObject character = MonoBehaviour.Instantiate(Resources.Load <GameObject>("PreFabs/Character")); MoveTowardPosition moveTowardPosition = character.GetComponent <MoveTowardPosition>(); character.transform.position = new Vector3(0, 0); Quaternion before = character.transform.rotation; Vector2 targetPosition = new Vector2(1, 1); yield return(null); moveTowardPosition.moveToPosition(targetPosition); yield return(new WaitForSeconds(1)); Quaternion after = character.transform.rotation; Assert.False(after.Equals(before)); MonoBehaviour.Destroy(character); }
void Update() { if (belongsTo == null) { return; } if (points.Count == 0 || Vector3.Distance(points[0], transform.position) >= segmentSize) { while (points.Count > items.Count * (distance / segmentSize) + 1 + offestSegments) { points.RemoveAt(points.Count - 1); } points.Insert(0, transform.position); } for (int i = 0; i < items.Count; i++) { if (points.Count <= offestSegments + (i + 1) * Mathf.RoundToInt(distance / segmentSize)) { break; } Item item = items[i]; if (item == null || item.IsDestroyed()) { items.RemoveAt(i); i--; continue; } MoveTowardPosition itemMTP = item.GetComponent <MoveTowardPosition>(); Vector3 nextPosition = points[offestSegments + (i + 1) * Mathf.RoundToInt(distance / segmentSize)]; itemMTP.moveToPosition(nextPosition); } /* * foreach(KeyValuePair<int, Item> pair in selectedItems) * { * MoveSelectedItem(pair.Key, pair.Value); * }*/ }
public override void Initialize(GameObject questGiver) { movement = questGiver.GetComponent <MoveTowardPosition>(); this.questGiver = questGiver; }