コード例 #1
0
            public void Execute(int index)
            {
                int   currentState = States[index].State;
                float cd           = States[index].CoolDown - DeltaTime;

                if (cd < 0)
                {
                    PedestrianState          newstate    = States[index];
                    PedestrianData           newdata     = PedestrianData[index];
                    InstanceRendererProperty newproperty = StateProperty[index];

                    int nextstate = NextState(currentState);

                    newproperty.Value = PedestrianAnimStateConfig.StateFrameRange[nextstate];
                    newstate.CoolDown = RdGen.NextFloat(
                        PedestrianAnimStateConfig.DurationRange[nextstate].x,
                        PedestrianAnimStateConfig.DurationRange[nextstate].y);
                    newdata.Speed = RdGen.NextFloat(
                        PedestrianAnimStateConfig.SpeedRange[nextstate].x,
                        PedestrianAnimStateConfig.SpeedRange[nextstate].y);

                    StateProperty[index]  = newproperty;
                    PedestrianData[index] = newdata;
                    States[index]         = newstate;
                }
                else
                {
                    States[index] = new PedestrianState()
                    {
                        CoolDown = cd, State = currentState
                    };
                }
            }
コード例 #2
0
 public void Render()
 {
     for (int i = 0; i < _renderData.Count; i++)
     {
         if (_renderData[i].Material && _renderData[i].Mesh)
         {
             Entity ent;
             NativeMultiHashMapIterator <int> iterator;
             if (_batcher.TryGetFirstValue(i, out ent, out iterator))
             {
                 InstanceRendererProperty prop = EntityManager.GetComponentData <InstanceRendererProperty>(ent);
                 _renderer.Init(_renderData[i], prop);
                 _renderer.Batch(ent);
                 while (_batcher.TryGetNextValue(out ent, ref iterator))
                 {
                     _renderer.Batch(ent);
                 }
                 _renderer.Final();
             }
         }
     }
 }
コード例 #3
0
 public void Init(InstanceRendererData renderData, InstanceRendererProperty property)
 {
     data       = renderData;
     shaderId   = property.ParamId;
     batchCount = 0;
 }