示例#1
0
    public void init(float range, float tm, Vector3 at)
    {
        transform.SetParent(Camera.main.transform);
        transform.localPosition = Vector3.zero;
        transform.localRotation = Quaternion.identity;

        var p = GetComponent <Projector>();

        Mat = p.material = Instantiate(p.material) as Material;
        Vector4 sp = at;

        sp.w = Time.time;
        Mat.SetVector("_SrcPos", sp);

        Mat.SetFloat("_MaxTime", MaxTimer = Timer = tm);

        var fab = TrigFab;

        if (range > 23)
        {
            fab = BigTrigFab;
        }
        Trig = (Instantiate(fab, at, Quaternion.identity) as GameObject).GetComponent <WaveTrigger>();

        Mat.SetFloat("_Range", Range = range);
    }
示例#2
0
    public void ControlTriggers(int direction)
    {
        //Debug.Log("Control Triggers");
        Vector2      rayPos = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x, Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
        RaycastHit2D hit    = Physics2D.Raycast(rayPos, Vector2.zero, 0f);

        if (hit)
        {
            WaveTrigger triggerSelected = hit.collider.gameObject.GetComponent <WaveTrigger>();
            if (triggerSelected != null)
            {
                triggerSelected.Rotate(direction);
            }
        }
    }
示例#3
0
    public void DestroyWave(WaveTrigger trigger = null)
    {
        if (trigger != null)
        {
            if (retriggerer != null)
            {
                retriggerer.retriggeredWaves.Remove(this.gameObject);
            }
            retriggerer = trigger;
        }

        GameManagement.instance.UnregisterWave(this.gameObject);
        Destroy(this.gameObject);

        //WavePool.instance.ReturnWave(this.gameObject);
    }