private void RemoveMolecule(SupportedMolecules type) { var go = _molecules[type][0]; _molecules[type].Remove(go); go.SetActive(false); Destroy(go); FillInBodies(); }
private void AddMolecule(SupportedMolecules type) { GameObject currentMolecule = _moleculesPool.Build(type); Rigidbody rb = currentMolecule.GetComponent <Rigidbody>(); rb.velocity = Random.onUnitSphere * _desiredVelocity; if (!_molecules.ContainsKey(type)) { _molecules.Add(type, new List <GameObject>()); } _molecules[type].Add(currentMolecule); FillInBodies(); }
private void SetNewMoleculesCount(SupportedMolecules typoKey, int newCount) { while (_molecules[typoKey].Count != newCount) { if (_molecules[typoKey].Count > newCount) { RemoveMolecule(typoKey); } else { AddMolecule(typoKey); } } }
public GameObject Build(SupportedMolecules type) { return(Instantiate(_moleculesPrefabs[type], _parent)); }