永发信息网

unity 使用screenspace 一定要把物体放在摄像机下面么

答案:2  悬赏:10  手机版
解决时间 2021-02-14 05:07
unity 使用screenspace 一定要把物体放在摄像机下面么
最佳答案
有NPC在屏幕中跑动,在跑出屏幕外后会被删掉。
现在问题是,如何判断NPC不在摄像机视野中。
网上搜了一下,最多的一个回答是“unity 事件中 有相关的事件 可参考”,但是看不懂。
另有人说投影到屏幕坐标,这个没有试过。一会去试试不在视野中和在视野中的投影有什么区别。
谁能告诉我一种比较简单的方法来进行判断(比如unity中一个函数搞定O(∩_∩)O~)
谢谢了!

【补充】:
将楼下方法挂在NPC上,可以检测得到,但是经过测试,在NPC出屏且移动一定距离后可以检测得到。
我自己试了一种方法,用NPC映射到屏幕坐标来判断(和屏幕的宽和高比较)
camera.WorldToScreenPoint(enemy.transform.position)
Screen.width
Screen.height

如果映射后的坐标不在屏幕内,则出屏了O(∩_∩)O~

偶尔看到这个方法,但是还没试,先粘到这里。
判断物体是否在视野内的方法。其实实现很简单,一个API方法而已。这个方法就是OnWillRenderObject(),在Unity3D文档描述中,当游戏对象对摄像机来说是可见的话,这个方法就会被调用。
我们来测试这个方法的功能。首先新建一个场景,在场景中放入一个方块和一个球体,还有加入光源,便于观察,我使用的是Unity3D5.0beta版本,在新建场景时会团默认创建光源,其他版本要自己加入。接下来,给球体加入刚体组件。运行场景,我们会发现球体会受重力影响掉下去,方块还在原位。
新建一脚本,如下所示:
using UnityEngine;

public class DetectVision:MonoBehaviour{

//传入方块的引用,用作标识
public GameObject cube;
//标识球体是否在摄像机视野内
public bool isRendering=true;

private float lastTime=0;
private float curtTime=0;

void Update()
{
//对比时间记录,如果不等,说明还在摄像机视野中。
isRendering = curtTime != lastTime ? true : false;
if (isRendering)
{
//在视野中,方块为红色
cube.GetComponent().material.color = Color.red;
}
else {
//不在视野中,方块变为白色
cube.GetComponent().material.color = Color.white;

}

//将当前时间传入上一帧时间记录中
lastTime = curtTime;
}

//如果对象可见,调用此方法
void OnWillRenderObject()
{
//将当前帧开始时间记录
curtTime = Time.time;
}
}
将脚本拖到球体上,并将方块对象拖到脚本上。运行程序,我们发现,刚开始方块是红色的。

当球体掉出视野后,方块变成了白色,效果图如下:
全部回答
我是来看评论的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
中国信合(杜村寺分社)地址在哪,我要去那里办
云南旅游百事通国际旅行社有限公司彼岸门市部
减压神器是什么意思
男友是外国人,寒假会来我这里玩要住一个礼拜
中国信合(铁东路分社)怎么去啊,我要去那办事
宝可梦剑盾大雾天,有车友可以回答一下这个问
看美剧用什么好?能缓存,比较全!人人美剧能
中国邮政储蓄银行(坡胡镇支行)地址好找么,我
邪魅王爷宠夫无度全文百度云或微盘
两个7805串联 ,A点有10V电压,这种用法会出
中国农业银行(长葛市支行)地址在哪,我要去那
兆明美容美发沙龙在哪里啊,我有事要去这个地
饺子上面的辣椒油是怎么做的
永州江华涔天河水库建好后发展旅游景区吗
越长大越不想说话看透了一些事也就不那么在乎
推荐资讯
大通g50不如广汽传祺gm6好吗
追求一生,得到的不就是一个小木盒吗
你好 配置单如下 cpu i5 4590散片 主板 技嘉B
怎样鉴别纯棉制品和涤纶制品? 急!!!
我性格本来就内向,家人和我关系又疏远,我父
康大的小学升初中的推荐考试考的是奥数还是数
想知道徐州金鹰购物人事部的电话
中国石油山东德州销售分公司第28加油站地址在
我老公患了丙肝,我也被传染了,他查了什么丙
锤子坚果手机自带壁纸图片在哪
【人造月亮】人造""月亮""是哪个国家!人造月
木垣在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?