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); }
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); } } }
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); }