Unity 如何判断物体是否在摄像机视野内或外

 时间:2024-10-14 18:13:18

Unity 如何判断物体是否在摄像机视野内外。有时候在游戏开发中,需要判断某些物体是否在摄像机视野内或视野外,以便进行一些操作比如,在视野里就显示,在外就隐藏,以节约资源开销,本节介绍如何判断物体是否在摄像机视野内或外的简单案例,具体如下

工具/原料

Unity

OnBecameVisible

OnBecameInvisible

一、基本概念

1、OnBecameVisible():1)DescriptionOnBecameVisible is called when the renderer became visible by any camera.This message is sent to all scripts attached to the renderer. OnBecameVisible and OnBecameInvisible is useful to avoid computations that are only necessary when the object is visible.2)Exampleusing UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour { void OnBecameVisible() { enabled = true; }}

2、OnBecameInvisible():1)DescriptionOnBecameInvisible is called when the renderer is no longer visible by any camera.This message is sent to all scripts attached to the renderer. OnBecameVisible and OnBecameInvisible is useful to avoid computations that are only necessary when the object is visible.2)Exampleusing UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour { void OnBecameInvisible() { enabled = false; }}

二、如何判断物体是否在摄像机视野内或外

1、打开Unity,新建一个空工程,具体如下图

Unity 如何判断物体是否在摄像机视野内或外

2、在场景中,新建一个“Cube”,具体如下图

Unity 如何判断物体是否在摄像机视野内或外

3、在工程中,新建一个脚本,脚本可以命名为“VisibleOrInvisible”,然后选中脚本,双击脚本或者右键“Open C# Project”打开脚本,具体如下图

Unity 如何判断物体是否在摄像机视野内或外Unity 如何判断物体是否在摄像机视野内或外

4、在打开的“VisibleOrInvisible”脚本上编写代码,首先在Update函数里面获取水平方向键输入,以控制“Cube”水平移动,在水平上自由移出移入摄像机视野,然后调用OnBecameVisible函数,当“Cube”在摄像机视野里触发打印操作(这里仅做打印输出,具体可以根据自己需要编写代码),调用OnBecameInvisible函数,当“Cube”在摄像机视野外触发另一打印操作,具体代码及代码说明如下图

Unity 如何判断物体是否在摄像机视野内或外

5、“VisibleOrInvisible”脚本具体内容如下:using UnityEngine;public class VisibleOrInvisible : MonoBehaviour { // Use this for initialization void Start () { } // Update is called once per frame void Update () { float h = Input.GetAxis("Horizontal"); this.transform.Translate(new Vector3(h * 5* Time.deltaTime, 0, 0)); } private void OnBecameVisible() { print("摄像机视野内"); } private void OnBecameInvisible() { print("在摄像机视野外"); }}

6、脚本编译正确后,回到unity界面,把“VisibleOrInvisible”脚本赋给场景中的“Cube”,具体如下图

Unity 如何判断物体是否在摄像机视野内或外

7、运行场景,即可看到控制台Console上已经打印“摄像机视野内”,因为此时“Cube”可见,当按下水平方向键把“Cube”移到屏幕外不可见时,则看到控制台Console上已经打印“在摄像机视野外”,具体如下图

Unity 如何判断物体是否在摄像机视野内或外Unity 如何判断物体是否在摄像机视野内或外

8、到此,《Unity 如何判断物体是否在摄像机视野内或外》讲解结束,谢谢

  • 如何利用Axure RP 8创建下拉框
  • 易语言如何取系统时间
  • 如何使用AXURE中的动态面板功能?
  • 如何获得橡胶木
  • 易语言教程[5]-变量
  • 热门搜索
    象牙的作用 有氧运动无氧运动 安全生产知识 茅草根的功效与作用 disappear什么意思 槐花蜜的功效与作用 菊粉的功效与作用 什么是排水量 白酒的功效与作用 什么叫更年期