软件编程
位置:首页>> 软件编程>> C#编程>> unity使用射线实现贴花系统

unity使用射线实现贴花系统

作者:Maddie_Mo  发布时间:2023-04-23 10:22:00 

标签:unity,射线,贴花系统

本文实例为大家分享了Unity使用射线实现贴花系统,供大家参考,具体内容如下

老规矩,直接上代码:


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
/// <summary>
/// 贴花系统
/// </summary>
public class Applique_ZH: MonoBehaviour
{
[Header("贴花粒子")]
public Transform _AppliqueParticle;
void Start()
{
  //实例化
 _AppliqueParticle = Instantiate(_AppliqueParticle);
}
void LateUpdate()
{
Applique();
}
//贴花实现
public void Applique()
{
 //屏幕坐标转射线
 object _Ray = Camera.main.ScreenPointToRay(Input.mousePosition);
 //射线对象是:结构体类型(存储了相关信息)
 RaycastHit _Hit;
 //发出射线检测到了碰撞 isHit返回的是 一个bool值
 bool _IsHit = Physics.Raycast((Ray)_Ray, out _Hit, 1000, ~(LayerMask.GetMask("AppliqueParticle")| LayerMask.GetMask("Click")));
 //EventSystem.current.IsPointerOverGameObject() 鼠标在UI上面
 if (_IsHit && !EventSystem.current.IsPointerOverGameObject())
 {
  _AppliqueParticle.localPosition = _Hit.point;
  _AppliqueParticle.localRotation = Quaternion.LookRotation(_Hit.normal);
 }
}
}

最终效果:

unity使用射线实现贴花系统

unity使用射线实现贴花系统

unity使用射线实现贴花系统

unity使用射线实现贴花系统

暂时先这样吧。

来源:https://blog.csdn.net/weixin_43925843/article/details/106214824

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com