コード例 #1
0
 public void ReleaseBoid(BoidStateMachine boid)
 {
     boid.gameObject.SetActive(false);
     boid.transform.position = Vector3.zero;
     boid.transform.SetParent(_poolTransform);
     _stack.Push(boid);
 }
コード例 #2
0
 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);
 }
コード例 #3
0
 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));
     }
 }
コード例 #4
0
 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);
 }
コード例 #5
0
ファイル: BoidsManager.cs プロジェクト: DreadCorsair/boids
 public void AddObject(BoidStateMachine obj)
 {
     obj.transform.SetParent(_boidsTransform);
     _objects.Add(obj);
     _maxUpdateTime = _maxUpdateTime / _objects.Count;
 }