我已经创建了一个统一的地形和一些模型的3D游戏,其中玩家可以去他想去的任何地方,相机跟随他。
我的问题是,当用户在一棵树后面时,如何使树变得透明?
我已经用光线投射了其他模型,但是树是地形的一部分,因此我得到的是地形材质,而不是特定的树。
有什么想法吗?
提前感谢
发布于 2018-11-20 03:29:19
最好的解决方案是从相机到前面开始光线,然后把相机放在比碰撞点稍远一点的地方,这样你就看不到树了。
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;记住将旧相机的位置放在应该的位置,以便相机不会离开并停留在那里,并且相机和旧相机在此之前具有相同的位置和旋转代码,然后您只需更改它们的位置即可。我的意思是,我不知道这是否可以,但你可以从中得出结论。
对不起,我是西班牙人。
发布于 2019-02-21 23:21:34
识别问题
树是地形的一部分,如果你需要造树,你可以很容易地做到。树将具有一类预置,并且每当游戏对象与树中的任何树发生冲突时,冲突任务或比方说事件将执行
解决方案
可以在地形的随机位置轻松地创建数千棵树,然后可以通过标记轻松地完成碰撞,并在碰撞代码中创建树的代码。这些树将被禁用。可以在update方法中应用I枚举器。waitForSeconds( 30 )将等待30秒,然后代码
gameobject.setactive(true)会把树带回它们各自的位置
用于在start方法中的随机位置创建树的代码
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);
}https://stackoverflow.com/questions/53380621
复制相似问题