我已经创建了一个与地形和一些模型统一的3D游戏,玩家可以在任何他想要的地方,摄像机跟随他。
我的问题是当用户在树后面时,如何使树透明?
我已经使用Ray cast对其他模型进行了处理,但是树是地形的一部分,因此我获得了地形材料而不是特定的树。
有任何想法吗?
提前致谢
那么最好的解决方案是从摄像头开始射线向前,然后将摄像头放置得比碰撞点更远,这样你就看不到树了。
Ray ray = new Ray(oldCam.position, oldCam.forward);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, 5)){
cam.position = hit.point + oldCam.forward;
} else
cam.position = oldCam.position;
请记住将旧的摄像机位置放在应该的位置,以便摄像机不会消失并停留在那里,并且摄像机和旧摄像机在此之前具有相同的位置和旋转代码,然后您只需更改其位置。我的意思是我不知道它是否可以,但你可以从中得出结论。
对不起我来自西班牙的错误。
树木是地形的一部分,如果你需要树木,你可以很容易地做到。树将具有一类预制件,并且每当游戏对象与任何树碰撞时,碰撞任务或说事件将执行
可以在地形的随机位置轻松创建数以千计的树木,然后通过标记可以轻松完成碰撞,并且可以在对撞机代码中制作树木的代码。树木将被禁用。可以在更新方法中应用Ienumerator。 waitForSeconds(30)将等待30秒,然后是代码
gameobject.setactive(true)
将树木带回各自的位置
public GameObject trees;
for (int i = 0; i < 300; i++)
{
Vector3 localPosition = new Vector3(Random.Range(-200, 100), 0 , Random.Range(-200, 100));
Instantiate(trees, localPosition, Quaternion.identity);
}