public void Run() { foreach (var i in _filter) { UMeshData offset = _filter.Get2[i]; URenderMatrix matrix = _filter.Get1[i]; Positioning.Components.Position pos = _filter.Get3[i]; for (int j = 0; j < offset.Offset.Length; j++) { matrix.Matrix[j] = Matrix4x4.TRS(pos.Point + offset.Offset[j], offset.RotationOffset[j], offset.Scale[j]); } } }
public void ParseMeshData(UMeshData data, URenderMatrix uRenderMatrix) { List <Mesh> mesh = new List <Mesh>(); List <Vector3> pos = new List <Vector3>(); List <Quaternion> rot = new List <Quaternion>(); List <Material> mat = new List <Material>(); List <Vector3> scale = new List <Vector3>(); GetRendererInfo(ref mesh, ref pos, ref rot, ref scale, ref mat, transform); data.Offset = pos.ToArray(); data.RotationOffset = rot.ToArray(); data.Scale = scale.ToArray(); uRenderMatrix.Meshes = mesh.ToArray(); uRenderMatrix.Materials = mat.ToArray(); uRenderMatrix.Matrix = new Matrix4x4[mesh.Count]; }