public virtual void loadAsset() { if (this.isAssetLoaded) { return; } this.isAssetLoaded = true; FoliageInstancedMeshInfoAsset foliageInstancedMeshInfoAsset = Assets.find <FoliageInstancedMeshInfoAsset>(this.assetReference); if (foliageInstancedMeshInfoAsset == null) { return; } this.mesh = Assets.load <Mesh>(foliageInstancedMeshInfoAsset.mesh); this.material = Assets.load <Material>(foliageInstancedMeshInfoAsset.material); this.castShadows = foliageInstancedMeshInfoAsset.castShadows; this.tileDither = foliageInstancedMeshInfoAsset.tileDither; if (foliageInstancedMeshInfoAsset.drawDistance == -1) { this.sqrDrawDistance = -1; } else { this.sqrDrawDistance = foliageInstancedMeshInfoAsset.drawDistance * foliageInstancedMeshInfoAsset.drawDistance; } }
public virtual void applyScale() { FoliageInstancedMeshInfoAsset foliageInstancedMeshInfoAsset = Assets.find <FoliageInstancedMeshInfoAsset>(this.assetReference); if (foliageInstancedMeshInfoAsset == null) { return; } for (int i = 0; i < this.matrices.Count; i++) { List <Matrix4x4> list = this.matrices[i]; List <bool> list2 = this.clearWhenBaked[i]; for (int j = list.Count - 1; j >= 0; j--) { Matrix4x4 matrix4x = list[j]; Vector3 position = matrix4x.GetPosition(); Quaternion rotation = matrix4x.GetRotation(); Vector3 randomScale = foliageInstancedMeshInfoAsset.randomScale; matrix4x = Matrix4x4.TRS(position, rotation, randomScale); list[j] = matrix4x; } } }