private void AddObstructor(Vec2 size, Vec2 offset) { var o1 = new Obstructor <MaterialThing>(size, position + Offset(offset), this); Obstructors.Add(o1); //AutoUpdatables.Add(o1); }
private void AddPlatformObstructor(Vec2 size, Vec2 offset) { var o1 = new Obstructor <IPlatform>(size, position + Offdirify(offset), this); PlatformObstructors.Add(o1); //AutoUpdatables.Add(o1); }
IEnumerator DetectPlayerObstructions() { while(true) { yield return new WaitForSeconds(0.5f); Vector3 direction = (playerTrans.position - Camera.main.transform.position).normalized; RaycastHit rayCastHit; if(Physics.Raycast(Camera.main.transform.position, direction, out rayCastHit, Mathf.Infinity)) { Obstructor obs = rayCastHit.collider.gameObject.GetComponent<Obstructor>(); if(obs) { obs.SetTransparent(); m_LastObstructor = obs; } else { if(m_LastObstructor) { m_LastObstructor.SetToNormal(); m_LastObstructor = null; } } } } }
public void Receive <T>(Obstructor <T> obstructor) where T : class { }