unity判断物体是否在阴影中
  v5bEezpf7PPs 2023年11月02日 115 0

@TOC


前言

如题所示,今天接到的需求是:Unity 判断物体是否在阴影中


效果视频

链接:https://www.bilibili.com/video/BV1wc411N7KF/?vd_source=75bbe3d71b926e90fdfca6d54888e920

原理

主要是用射线检测


步骤

找到射线的起始位置和方向 射线的碰撞检测 如果碰到带阴影的物体就判断下


源码

以下源码,挂载到要判断的物体上即可,指定下Light和要显示的Text

using UnityEngine;
using UnityEngine.UI;

public class ShadowTest : MonoBehaviour
{
    public Transform lightTarget;
    public bool ifShadow;
    public Text texts;
    void Start()
    {
        
    }
    void Update()
    {
        Vector3 target = (Quaternion.Euler(lightTarget.eulerAngles) * Vector3.forward).normalized*-1;
        Ray ray = new Ray(transform.position,target);
        RaycastHit hit;
        if (Physics.Raycast(ray,out hit,Mathf.Infinity))
        {
            Debug.Log("碰撞对象"+hit.collider.name);
            Debug.DrawLine(ray.origin,hit.point,Color.red);
            ifShadow = true;
        }
        else
        {
            ifShadow = false;
        }
        texts.text = "是否在阴影中:"+ifShadow;
    }
}

总结

欢迎大佬多多来给萌新指正,欢迎大家来共同探讨。 如果各位看官觉得文章有点点帮助,跪求各位给点个“一键三连”,谢啦~

声明:本博文章若非特殊注明皆为原创 ————————————————————————————————

💢💢版权声明

版权声明:本博客为非营利性个人原创 所刊登的所有作品的著作权均为本人所拥有 本人保留所有法定权利,违者必究! 对于需要复制、转载、链接和传播博客文章或内容的 请及时和本博主进行联系 对于经本博主明确授权和许可使用文章及内容的 使用时请注明文章或内容出处并注明网址 转载请附上原文出处链接及本声明


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

v5bEezpf7PPs