public void Read(BinaryStream bs) { var startPos = bs.ByteOffset; Magic = bs.Read.UInt(); Version = bs.Read.UShort(); Revision = bs.Read.UShort(); Unk1 = bs.Read.UInt(); // Physics mat ids NumPhysicsMats = bs.Read.Int(); PhysicsMaterialIds = bs.Read.UIntArray(NumPhysicsMats); // Verts NumVertBlocks = bs.Read.Int(); Verts = new Vector3[NumVertBlocks][]; for (int i = 0; i < NumVertBlocks; i++) { int numVerts = bs.Read.Int(); Verts[i] = bs.Read.Vector3Array(numVerts); } // Indice blocks NumIndiceBlocks = bs.Read.Int(); IndiceBlocks = new IndiceBlock[NumIndiceBlocks]; for (int i = 0; i < NumIndiceBlocks; i++) { IndiceBlocks[i] = new IndiceBlock(bs); } // Mats NumMatBlocks = bs.Read.Int(); MatBlocks = new MatBlock[NumMatBlocks]; for (int i = 0; i < NumMatBlocks; i++) { MatBlocks[i] = new MatBlock(bs); } // Mopps NumMoppBlocks = bs.Read.Int(); MoppBlocks = new MoppBlock[NumMoppBlocks]; for (int i = 0; i < NumMoppBlocks; i++) { MoppBlocks[i] = new MoppBlock(bs); } // Havok data var readBytes = bs.ByteOffset - startPos; var leftBytes = NodeLength - readBytes; HavokData = bs.Read.ByteArray((int)leftBytes); }
public void UpdateParams(float hp, float maxHp) { MeshRenderer.GetPropertyBlock(MatBlock); MatBlock.SetFloat(Fill, hp / maxHp); MeshRenderer.SetPropertyBlock(MatBlock); }