public void ReleaseBoid(BoidStateMachine boid) { boid.gameObject.SetActive(false); boid.transform.position = Vector3.zero; boid.transform.SetParent(_poolTransform); _stack.Push(boid); }
public SlaveState(BoidStateMachine stateMachine, float authorityRadius, TypeModel.TypeModelItem typeItem) { _stateMachine = stateMachine; _authorityRadius = authorityRadius; _transform = stateMachine.transform; _rigidbody = stateMachine.GetComponent <Rigidbody>(); _thisCollider = stateMachine.GetComponent <Collider>(); SetType(typeItem); }
public BoidFactory(BoidStateMachine prototype, int capacity, Transform poolTransform) { _poolTransform = poolTransform; _stack = new Stack <BoidStateMachine>(); for (var i = 0; i < capacity; i++) { ReleaseBoid(Object.Instantiate(prototype)); } }
public LeaderState(BoidStateMachine stateMachine, Vector3 habitatSize, Vector3 rotationDelta, TypeModel.TypeModelItem typeItem, float authorityRadius) { _stateMachine = stateMachine; _transform = stateMachine.transform; _rigidbody = stateMachine.GetComponent <Rigidbody>(); _habitatSize = habitatSize; _rotationDelta = rotationDelta; Authority = CalculateAuthority(); _authorityRadius = authorityRadius; SetType(typeItem); }
public void AddObject(BoidStateMachine obj) { obj.transform.SetParent(_boidsTransform); _objects.Add(obj); _maxUpdateTime = _maxUpdateTime / _objects.Count; }