Ejemplo n.º 1
0
    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);
    }
Ejemplo n.º 2
0
    void Start()
    {
        moveTowardPositionScript = GetComponent <MoveTowardPosition>();

        if (moveTowardPositionScript == null)
        {
            Debug.Log("RotateTowardMovementTarget in " + this.gameObject.name + " needs a MoveTowardPosition.");
        }
    }
Ejemplo n.º 3
0
    public void rotateTowardsTargetPosition()
    {
        if (moveTowardPositionScript == null)
        {
            moveTowardPositionScript = GetComponent <MoveTowardPosition>();
        }

        Vector2 movementTargetPosition = moveTowardPositionScript.getCurrentTargetPosition();
        Vector2 rotationTargetPosition = getCurrentTargetPosition();

        if (!movementTargetPosition.Equals(rotationTargetPosition))
        {
            rotateToPosition(movementTargetPosition);
        }
    }
Ejemplo n.º 4
0
    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);
    }
Ejemplo n.º 5
0
    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);
    }
Ejemplo n.º 6
0
    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);
         * }*/
    }
Ejemplo n.º 7
0
 public override void Initialize(GameObject questGiver)
 {
     movement        = questGiver.GetComponent <MoveTowardPosition>();
     this.questGiver = questGiver;
 }