我有一个脚本,该脚本生成生成体素地形并将随机材质应用于每个立方体。
材质似乎应用得很好,但是当任何摄像机(游戏机和场景摄像机)移动到一定距离时,对象似乎没有设置任何材质。这仅会显示在其他任何已移动到引起位置的摄像机上的摄像机上。
我不知道这是统一性还是脚本错误。
// create a unit cube and store the mesh from it
GameObject blockMesh = Instantiate(blockPrefab, Vector3.zero, Quaternion.identity);
MeshFilter blockMeshMesh = blockMesh.GetComponent<MeshFilter>();
// add mesh renderer component
MeshRenderer mr = blockMesh.GetComponent<MeshRenderer>();
// move the unit cube to the intended position
blockMesh.transform.position = new Vector3(x, y, z);
chooseMesh = Random.Range(0f, 1000f);
// Randomly decide a material for the cube
// testing for different items with different rarities
if (chooseMesh >= 0f && chooseMesh < 500f)
{
//set material to avoid evil pinkness of missing texture
mr.material = material_1;
}
else if (chooseMesh >= 500f && chooseMesh < 750f)
{
mr.material = material_2;
}
else if (chooseMesh >= 750f && chooseMesh < 875f)
{
mr.material = material_3;
}
else if (chooseMesh >= 875f && chooseMesh < 937.5f)
{
mr.material = material_4;
}
else if (chooseMesh >= 937.5f && chooseMesh < 1000)
{
mr.material = material_5;
}
编辑:我检查了我的相机裁剪平面,并将它们设置为0.01和1000。
此外,材料会以多个规则的间隔消失,而不仅仅是在一定距离之内和之外。
检查相机的裁剪平面
来自Camera
剪切平面从照相机开始和停止渲染的距离。
- Near相对于将要绘制的相机的最近点。
- Far
相对于相机进行绘制的最远点。因此,如果您的对象距离Camera较远,则其
Far
剪切平面或更接近其Near
剪切平面,则根本不会渲染。