Unity 判断物体是否在指定范围内

这篇具有很好参考价值的文章主要介绍了Unity 判断物体是否在指定范围内。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用 Physics.CheckSphere 函数通过检测指定点周围是否有碰撞体,可以传入一个位置向量和一个半径值,如果需要对指定层级进行检测可以传入LayerMask 表示需要检测的碰撞体的层。结果会返回一个bool值,表示该位置是否有碰撞体与之重叠。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class CheckRange : MonoBehaviour
{
    public float rangeRadius;
    public LayerMask layerMask;
    
    void Update()
    {
        if (CheckPlayerInTargetRange(transform))
        {
            Debug.Log("在范围内");
        }
    }
    
    /// <summary>
    /// 检查角色是否在目标范围内
    /// </summary>
    /// <returns>目标点</returns>
    bool CheckPlayerInTargetRange(Transform targetPoint) 
    {
        return Physics.CheckSphere(targetPoint.position, rangeRadius,layerMask);
    }

    void OnDrawGizmos()
    {
        // 绘制范围,使用绿色半透明线框
        Gizmos.color = new Color(0f, 1f, 0.5f, 0.5f);
        Gizmos.DrawWireSphere(transform.position, rangeRadius);
    }
}

 运行效果
unity判断物体在范围内,Unity 技术探索专栏,unity,游戏引擎,c#

unity判断物体在范围内,Unity 技术探索专栏,unity,游戏引擎,c#文章来源地址https://www.toymoban.com/news/detail-759848.html

到了这里,关于Unity 判断物体是否在指定范围内的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Unity实现物体绕指定轴旋转

    在Unity中,我们经常需要控制物体的旋转行为。有时候,我们需要让物体绕指定的轴旋转,而不是默认的旋转轴。在本文章中,我将展示如何使用C#脚本来实现这个功能。 首先,我们需要创建一个空对象,并将它作为父对象,然后将我们想要旋转的物体作为子对象。这样,我

    2024年01月23日
    浏览(35)
  • JavaScript - 判断当前时间是否在指定区间内,例如:9:00~12:00(检查当前时间是否处于规定的两个时间段范围内),适用于 vue.js / uniapp / 微信小程序等前端项目

    例如,您想知道当前时间是否处于 9:00 ~ 12:00 时间区间内,然后根据这个判断进而实现业务逻辑。 如下示例所示, 本文提供一个函数,您只需要传入 2 个时间区间,便可得出当前时间是否在该时间区间范围内: 您可以一键复制,直接粘贴到您的项目中。 您只需要传入开始时

    2024年02月16日
    浏览(50)
  • Unity中拖拽3D物体并放入到指定位置

    1.新建一个cube作为我们用来拖拽的物体:  2.给该cube添加我们刚刚编写的脚本: 3.场景中新建几个cube命名为Taget3D,摆在不同的位置并将这些新的cube传入到ListTartgets中:    4.新建几个Image命名为TargetUI,放在不同的位置并传入到ListUITarget中 : 5.新建两个Button分别对应传入buttonU

    2024年02月11日
    浏览(83)
  • unity判断是否点击到某个按钮

          1、 适应场景:当点击到界面其他地方,这个按钮不再突出显示,怎么解决? private void Update()     {         if (Input.GetMouseButtonDown(0))         {             if (EventSystem.current.currentSelectedGameObject == null || EventSystem.current.currentSelectedGameObject.name != \\\"ButtonName\\\")          

    2024年02月11日
    浏览(33)
  • unity在使用Reflection Probe(反射探头)bake(烘焙)时,无法反射出范围內的物体。

    bake后发现反射探头还是原来的样子,解决办法以下: 打开lighting设置,观察最下面是否为图中这样   如果是,则点击旁边的cancel即可解决问题。     

    2024年02月12日
    浏览(28)
  • Unity之用Transform 数组加多个空物体-->简单地控制物体按照指定路线自动行驶

    当你需要实现物体按照指定路线行驶时,你可以通过以下步骤来实现: 路径点 :你需要定义一系列路径点,这些点将构成物体行驶的路线。每个路径点都是一个在场景中的位置,物体将会按照这些点逐步移动。 移动过程 :在每一帧更新时,你需要将物体从当前位置移动到下

    2024年02月11日
    浏览(28)
  • unity 判断当前设备是否是模拟器(安卓)

    最近有个需求,需要判断当前设备是否是模拟器,网上查了一下,发现基本上都是使用特征字符串进行检索,类似这种: 发现都是不行的,因为现在的模拟器都会伪装== 还有一种方法是使用 AndroidJavaClass 来调用安卓相关的方法:参考林新发大佬 例如这种: ps:由于没用安卓

    2024年02月14日
    浏览(40)
  • Unity 之transform.LookAt() 调整一个物体的旋转,使其朝向指定的位置

    transform.LookAt 是 Unity 引擎中 Transform 组件的一个方法,用于调整一个物体的旋转,使其朝向指定的位置。通常情况下,它被用来使一个物体(如摄像机、玩家角色等)朝向另一个物体、位置或方向。以下是关于 transform.LookAt 方法的详细介绍: 方法签名: 参数说明: target :要

    2024年02月09日
    浏览(32)
  • Unity利用正则表达式判断字符串是否满足要求

    首先该方法属于C#,是C#提供的,不是unity提供的,但我使用这个是在unity中使用的,故此我将其归入unity笔记。 该方式可用于注册、登录等等需要用户输入的场景,用以判断字符串是否满足正则表达式的要求 首先介绍该API 这里开始介绍,大家可以看看官方的文档Regex.IsMatch 方

    2024年01月16日
    浏览(43)
  • Unity 3D通过脚本控制音频音量、继续、暂停、停止播放;判断当前音乐是否播放;切换音乐;

    演示 在HideInInspector中将三首音乐拖到音乐组中,自定义音乐数量也可以,需要修改代码中切换音乐函数中的部分内容。调用脚本中的函数即可实现对应功能。 重复播放音乐代码如下

    2024年02月12日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包