void BroadPhaseUpdate() { var bc = SimElementHelper.ComputeParticlesBoundingCircle(particles, particleRadius); trigger.radius = bc.radius; trigger.offset = bc.center; }
void LateUpdate() { Vector3 pos = Input.mousePosition; pos.z = -Camera.main.transform.position.z; pos = Camera.main.ScreenToWorldPoint(pos); if (!_isDragging) { if (Input.GetMouseButtonDown(0)) { int idx; Matrix4x4 mat = transform.localToWorldMatrix; if (SimElementHelper.FindOverlapParticleIdx(_particles, mat, pos, _particleRadius, out idx)) { _isDragging = true; _draggedParticle = _particles[idx]; } } } else { if (Input.GetMouseButtonUp(0)) { _isDragging = false; } else if (Input.GetMouseButton(0)) { _draggedParticle.pos = transform.worldToLocalMatrix.MultiplyPoint3x4(pos); } } }
public List <int> GetSimElemIndices <T>() where T : SimElement { return(SimElementHelper.GetSimElemIndices <T>(_simElements)); }
public List <T> GetSimElems <T>() where T : SimElement { return(SimElementHelper.GetSimElems <T>(_simElements)); }