Beispiel #1
0
    Vector2 AroundDangerPoint(ProjectileScript threat)
    {
        float offset = 3.0f;

        if (smartAvoider == null)
        {
            smartAvoider = threat;

            if (Mathf.Abs(transform.position.y - threat.gameObject.transform.position.y) >
                Mathf.Abs(transform.position.x - threat.gameObject.transform.position.x))
            {
                if (Random.Range(0, 2) == 0)
                {
                    smartAvoiderChoice = 0;
                    return(new Vector2(threat.GetTargetedPosition().x + offset, threat.GetTargetedPosition().y));
                }
                else
                {
                    smartAvoiderChoice = 1;
                    return(new Vector2(threat.GetTargetedPosition().x - offset, threat.GetTargetedPosition().y));
                }
            }
            else
            {
                if (Random.Range(0, 2) == 0)
                {
                    smartAvoiderChoice = 2;
                    return(new Vector2(threat.GetTargetedPosition().x, threat.GetTargetedPosition().y + offset));
                }
                else
                {
                    smartAvoiderChoice = 3;
                    return(new Vector2(threat.GetTargetedPosition().x, threat.GetTargetedPosition().y - offset));
                }
            }
        }
        else
        {
            if (smartAvoiderChoice == 0)
            {
                return(new Vector2(threat.GetTargetedPosition().x + offset, threat.GetTargetedPosition().y));
            }
            else if (smartAvoiderChoice == 1)
            {
                return(new Vector2(threat.GetTargetedPosition().x - offset, threat.GetTargetedPosition().y));
            }
            else if (smartAvoiderChoice == 2)
            {
                return(new Vector2(threat.GetTargetedPosition().x, threat.GetTargetedPosition().y + offset));
            }
            else
            {
                return(new Vector2(threat.GetTargetedPosition().x, threat.GetTargetedPosition().y - offset));
            }
        }
    }