コード例 #1
0
        void UpdateTransformIndex()
        {
            if (!m_Dirty)
            {
                return;
            }
            m_Dirty = false;
            Profiler.BeginSample("UpdateTransformIndex");
            NativeArrayHelpers.ResizeIfNeeded(ref m_TransformMatrix, m_Transform.Length);
            if (!m_TransformAccessArray.isCreated)
            {
                TransformAccessArray.Allocate(m_Transform.Length, -1, out m_TransformAccessArray);
            }
            else if (m_TransformAccessArray.capacity != m_Transform.Length)
            {
                m_TransformAccessArray.capacity = m_Transform.Length;
            }
            m_TransformAccessArray.SetTransforms(m_Transform);

            for (int i = 0; i < m_Transform.Length; ++i)
            {
                if (m_Transform[i] != null)
                {
                    var instanceId    = m_Transform[i].GetInstanceID();
                    var transformData = m_TransformData[instanceId];
                    transformData.transformIndex = i;
                    m_TransformData[instanceId]  = transformData;
                }
            }
            Profiler.EndSample();
        }
コード例 #2
0
 private void LateUpdate()
 {
     trans = new TransformAccessArray(transforms[num].Count, -1);
     trans.SetTransforms(transforms[num].ToArray());
     fl = new NativeArray <float>(vs[num].Count, Allocator.Temp);
     fl.CopyFrom(vs[num].ToArray());
     billJob = new BillBoardJob()
     {
         camPos       = transform.position,
         spriteNum    = new NativeArray <int>(spr.Length, Allocator.Temp),
         spriteLength = sprites.Length,
         rot          = fl
     };
     handle = billJob.Schedule(trans);
     handle.Complete();
     for (int i = 0; i < trans.length; i++)
     {
         transforms[num][i].GetComponent <Renderer>().material = sprites[billJob.spriteNum[i]];
     }
     if (num < 9)
     {
         num++;
     }
     else
     {
         num = 0;
     }
     fl.Dispose();
     trans.Dispose();
     billJob.spriteNum.Dispose();
 }
コード例 #3
0
 void UpdateNodeTransformArray()
 {
     if (NodeTransformArray.isCreated)
     {
         NodeTransformArray.SetTransforms(Nodes.Select(x => x.transform).ToArray());
     }
     else
     {
         NodeTransformArray = new TransformAccessArray(Nodes.Select(x => x.transform).ToArray());
     }
 }
コード例 #4
0
 public void SetColliderPackage(ColliderRead[] collidersReadList, ColliderReadWrite[] collidersReadWriteList, Transform[] collidersTransList)
 {
     this.collidersReadList      = new NativeArray <ColliderRead>(collidersReadList, Allocator.Persistent);
     this.collidersReadWriteList = new NativeArray <ColliderReadWrite>(collidersReadWriteList, Allocator.Persistent);
     colliderTransformsList.SetTransforms(collidersTransList);
 }