unity使用射線實現貼花系統
阿新 • • 發佈:2020-07-13
本文例項為大家分享了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); } } }
最終效果:
暫時先這樣吧。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。