Voxel Play 3 · Troubleshooting & FAQ
Tthe following code adds a new voxel definition at runtime (playmode).
First, it creates a new instance of VoxelDefinition and populates basic fields like name "Brick", the render type (in this case full opaque voxel) and the textures to be used.
Then, it places a new voxel of the new type just over the crosshair (this part is optional and provided to complete the example).
VoxelDefinition vd = env.GetVoxelDefinition ("Brick");
if (vd == null) {
vd = ScriptableObject.CreateInstance<VoxelDefinition> ();
vd.name = "Brick";
vd.renderType = RenderType.Opaque;
vd.textureTop = texture;
vd.textureSide = texture;
vd.textureBottom = texture;
env.AddVoxelDefinition (vd);
}
VoxelPlayFirstPersonController fpsController = VoxelPlayFirstPersonController.instance;
if (fpsController.crosshairOnBlock) {
Vector3 pos = fpsController.crosshairHitInfo.voxelCenter + fpsController.crosshairHitInfo.normal;
env.VoxelPlace (pos, vd);
}