UGUI系列 您所在的位置:网站首页 unity生成物体代码 UGUI系列

UGUI系列

2023-03-14 21:28| 来源: 网络整理| 查看: 265

这是我参与8月更文挑战的第25天,活动详情查看:8月更文挑战

推荐阅读

CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 我的个人博客 QQ群:1040082875

  大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

今天给大家分享一个如何点击图片生成物体的脚本,可以把这个脚本稍微封装一下,以后也可以方便使用。 主要试用与点击图片时候响应事件,具体用法还要大家多多摸索

二、效果

这里写图片描述

三、正文 步骤: 1.新建2个Image

这里写图片描述这里写图片描述这里写图片描述 就改下名字,其他属性都不用改

3.创建两个预制体在Resources文件夹

这里写图片描述 名字就没有改(懒..)

2.新建脚本test01.cs

代码如下:

using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class test01 : MonoBehaviour { //图片名字 string imageName; //预制体对象 GameObject part; void Update() { if (Input.GetMouseButtonDown(0)) { //如果获取到对象的话 if (OnePointColliderObject() != null) { //给图片名字赋值 imageName = OnePointColliderObject().name; //创建对象 InstantObject(); } } } /// /// 点击对象 /// /// 点击对象获取到对象的名字 public GameObject OnePointColliderObject() { //存有鼠标或者触摸数据的对象 PointerEventData eventDataCurrentPosition = new PointerEventData(EventSystem.current); //当前指针位置 eventDataCurrentPosition.position = new Vector2(Input.mousePosition.x, Input.mousePosition.y); //射线命中之后的反馈数据 List results = new List(); //投射一条光线并返回所有碰撞 EventSystem.current.RaycastAll(eventDataCurrentPosition, results); //返回点击到的物体 if (results.Count > 0) return results[0].gameObject; else return null; } public void InstantObject() { switch (imageName) { case "Image_1": GameObject obj01 = (GameObject)Resources.Load("Cube"); part = Instantiate(obj01, Vector3.zero, obj01.transform.rotation); break; case "Image_2": GameObject obj02 = (GameObject)Resources.Load("Sphere"); part = Instantiate(obj02, Vector3.up, obj02.transform.rotation); break; default: break; } } } 复制代码

代码比较简单,就不多说了,都有注释。 主要讲一下OnePointColliderObject这个函数中的

EventSystem.current.RaycastAll(eventDataCurrentPosition, results); RaycastAll的主要特性就是使用光线投射碰撞:在还没有发生真正的物理碰撞之前,就响应碰撞。 public void RaycastAll(PointerEventData eventData, List raycastResults);

OK,大家可以试一下,有什么新奇的点子也可以留言哦



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有