游戏蛮牛学习群(纯技术交流,不闲聊):159852603
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2353

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 671|回复: 1

[码农亚] 3D物体射线检测方法整理(部分)

[复制链接]  [移动端链接]
排名
3457
昨日变化
15

10

主题

114

帖子

929

积分

Rank: 9Rank: 9Rank: 9

UID
251813
好友
3
蛮牛币
1782
威望
0
注册时间
2017-10-31
在线时间
375 小时
最后登录
2018-11-16

专栏作家活力之星

发表于 2018-6-17 18:23:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
本帖最后由 码农亚 于 2018-6-17 18:25 编辑

01  做项目过程中经常遇到一些关于3D物体检测的功能需要。
02  项目后期,控制功能开始统一化起来,然后发现这一模块也有相关的知识点需要注意,就整理一下。
03  关于之前的编辑器模块,肯定是会继续更新的,不过,现在没有时间,就是这样。
04  那就进入正题:
     先用一个小功能来说明吧。
     假设:我要实现一个零部件信息提示的功能,当然有相当多的方法。
方法1 :
    using UnityEngine.EventSystems;
    利用事件机制,引用方法进行控制。
方法二:
    添加模块Raycaster和Eventrigger事件方法进行控制。
方法三:
    利用摄像机检测(当然,此方法很多人都用过,太常见了!)。
截图不好看就贴出方法1的代码吧。
[C#] 纯文本查看 复制代码
using UnityEngine;
using System.Collections;
using UnityEngine.EventSystems;
using System;

public class DocumentionManager0  : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerClickHandler
{
    public GameObject appearImg;
    [HideInInspector]
    public int num;
    // Use this for initialization
    void Start()
    {
        ExitState();

    }
    void Update()
    {
        if (num == 1)
        {
            appearImg.transform.position = Input.mousePosition;
        }
    }
    public void EnterState()
    {
        appearImg.gameObject.SetActive(true);
        num = 1;
    }
    public void ExitState()
    {
        num = 0;
        appearImg.gameObject.SetActive(false);
    }
    //之所以添加按钮事件,就是因为PointerEventData 本身没有锁定的话,三按钮点击都生效
    public void OnPointerClick(PointerEventData  eventData )
    {
       if (eventData.button==PointerEventData.InputButton.Left)
        {
            Debug.Log("点击");
        }
    }

    public void OnPointerEnter(PointerEventData eventData)
    {
        EnterState();
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        ExitState();
    }
}

基本内容就是以上了。
为啥标记这篇文章为部分,是因为NGUI等UI框架下还有别的方法。
蛮牛币还是1个,这样算是让大家重视一些。
祝愿大家端午安康,父母平安快乐。
RomanticCute06.rar (218.17 KB, 下载次数: 7, 售价: 1 蛮牛币)

回复

使用道具 举报

4四处流浪
358/500
排名
6185
昨日变化
50

5

主题

59

帖子

358

积分

Rank: 4

UID
228307
好友
4
蛮牛币
626
威望
0
注册时间
2017-6-23
在线时间
86 小时
最后登录
2018-11-16
发表于 2018-8-8 10:37:16 | 显示全部楼层
可以的,不错

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关闭

站长推荐 上一条 /1 下一条

快速回复 返回顶部 返回列表