Ejemplo n.º 1
0
    public static StasisBullet create(Vector3 position, Quaternion direction, Vector3 targetPos)
    {
        GameObject pref = Resources.Load <GameObject> ("Prefabs/StasisBullet");
        GameObject inst = Instantiate <GameObject> (pref, position, Quaternion.identity);

        inst.transform.GetChild(0).rotation = Quaternion.Euler(0f, 0f, direction.eulerAngles.z - 180f);
        StasisBullet sb = inst.GetComponent <StasisBullet> ();

        sb.travelDist = Vector2.Distance(targetPos, sb.transform.position);
        sb.startPos   = sb.transform.position;
        sb.dir        = (direction * Vector3.up).normalized;
        return(sb);
    }
Ejemplo n.º 2
0
    private static bool placeStasisBubble(Entity e, Vector2 tarPos)
    {
        if (!LevelStateManager.canAddStasisBubble())
        {
            return(false);
        }

        float      angle = Vector2.Angle(Vector2.up, tarPos - (Vector2)e.transform.position);
        float      sign  = e.transform.position.x < tarPos.x ? -1f : 1f;
        Quaternion rot   = Quaternion.Euler(0f, 0f, angle * sign);

        StasisBullet s = StasisBullet.create(e.transform.position, rot, tarPos);

        Physics2D.IgnoreCollision(s.GetComponent <Collider2D> (), e.GetComponent <Collider2D> ());

        return(true);
    }