首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >隐藏玩家时隐藏树

隐藏玩家时隐藏树
EN

Stack Overflow用户
提问于 2018-11-20 02:28:07
回答 2查看 405关注 0票数 0

我已经创建了一个统一的地形和一些模型的3D游戏,其中玩家可以去他想去的任何地方,相机跟随他。

我的问题是,当用户在一棵树后面时,如何使树变得透明?

我已经用光线投射了其他模型,但是树是地形的一部分,因此我得到的是地形材质,而不是特定的树。

有什么想法吗?

提前感谢

EN

回答 2

Stack Overflow用户

发布于 2018-11-20 03:29:19

最好的解决方案是从相机到前面开始光线,然后把相机放在比碰撞点稍远一点的地方,这样你就看不到树了。

代码语言:javascript
复制
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;

记住将旧相机的位置放在应该的位置,以便相机不会离开并停留在那里,并且相机和旧相机在此之前具有相同的位置和旋转代码,然后您只需更改它们的位置即可。我的意思是,我不知道这是否可以,但你可以从中得出结论。

对不起,我是西班牙人。

票数 0
EN

Stack Overflow用户

发布于 2019-02-21 23:21:34

识别问题

树是地形的一部分,如果你需要造树,你可以很容易地做到。树将具有一类预置,并且每当游戏对象与树中的任何树发生冲突时,冲突任务或比方说事件将执行

解决方案

可以在地形的随机位置轻松地创建数千棵树,然后可以通过标记轻松地完成碰撞,并在碰撞代码中创建树的代码。这些树将被禁用。可以在update方法中应用I枚举器。waitForSeconds( 30 )将等待30秒,然后代码

代码语言:javascript
复制
gameobject.setactive(true)

会把树带回它们各自的位置

用于在start方法中的随机位置创建树的代码

代码语言:javascript
复制
 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);
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53380621

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档