unity3d---物体加点击事件

这篇具有很好参考价值的文章主要介绍了unity3d---物体加点击事件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.给需要点击点物体加collider

2.层级面板加EventSystem

3. 相机加Physics Raycaster

4.物体单独响应点击事件

5.控制脚本实现各物体的点击事件

6.点击ui时屏蔽 物体点击事件



1.给需要点击点物体加collider

 unity 物体被点击,Unity,unity3d,unity 3d点击,unity 物体点击,unity 点击事件

2.层级面板加EventSystem

unity 物体被点击,Unity,unity3d,unity 3d点击,unity 物体点击,unity 点击事件

 unity 物体被点击,Unity,unity3d,unity 3d点击,unity 物体点击,unity 点击事件

3. 相机加Physics Raycaster

2d 3d按需添加

 unity 物体被点击,Unity,unity3d,unity 3d点击,unity 物体点击,unity 点击事件

4.物体单独响应点击事件

新建单独脚本挂在响应点击的物体上文章来源地址https://www.toymoban.com/news/detail-707450.html

public class ClickObj : MonoBehaviour, IPointerClickHandler
{
    public void OnPointerClick(PointerEventData event)
    {
        Debug.LogError("我被点了");
    }
}

5.控制脚本实现各物体的点击事件

private void Update()
    {
        if (subCamera[0].activeSelf)
        {
            if (Input.GetMouseButtonDown(0))
            {
                ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit))
                {
                    obj = hit.collider.gameObject;
                    //根据物体名 进行下一步操作
                    switch (obj.name)
                    {
                        case "add_dp": 
                            Debug.LogError("aaa");
                            break;
                        case "add_ck":
                            break;
                        case "add_jxb":
                            break;
                        case "add_lt":
                            break;
                        case "add_cm":
                            break;
                        case "add_kqf":
                            break;
                    }
                }
            }
        }
        else if (subCamera[1].activeSelf)
        {
            if (Input.GetMouseButtonDown(0))
            {
                ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                if (Physics.Raycast(ray, out hit))
                {
                    obj = hit.collider.gameObject;
                    //根据物体tag 进行下一步操作
                    switch (obj.tag)
                    {
                        case "aaa":
                            Debug.LogError("aaa");
                            break;
                        case "bbb":
                            Debug.LogError("bbb");
                            break;
                    }
                }
            }
        }
    }

6.点击ui时屏蔽 物体点击事件

if (Input.touchCount == 1)
        {
            if (EventSystem.current.IsPointerOverGameObject(Input.GetTouch(0).fingerId)) { return; }
        }
        else
        {
            if (EventSystem.current.IsPointerOverGameObject()) { return; }
        }

到了这里,关于unity3d---物体加点击事件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity3D小功能】Unity3D中实现点击‘文字’出现‘UI面板’

    推荐阅读 CSDN主页 GitHub开源地址 Unity3D插件分享 简书地址 QQ群:398291828 大家好,我是佛系工程师 ☆恬静的小魔龙☆ ,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 宠粉博主又来了,今天有粉丝问我如何实现点击一段文字然后出现的面板在那段文字附近显示: 深入了

    2024年04月13日
    浏览(83)
  • Unity3D 控制物体移动且自动旋转

    直接上代码(改脚本挂载到游戏物体上) 第三人称摄像机移动

    2024年02月15日
    浏览(83)
  • Unity3D_物体抛物线运动

    参考:Unity 贝塞尔曲线实现抛物线运动,投掷功能实现  用到了DOTween插件, 回想起之前不知道这个插件还在用协程和SmoothDamp做运动控制的自己仿佛是个哈批 路径绘制使用的LineRenderer

    2024年02月13日
    浏览(69)
  • 多层Unity3D物体模型穿透问题处理

    如图,当我们想要在同一个界面中展示两层或以上3D物体时,有时会因为第一层物体材质上的 shader 渲染深度被破坏或其它原因导致第一层的物体穿透到第二层界面上来了。 在 Scene 视图中这三个橙色球体原本是在第二层黄色背景之下的: 但是在 Game 视图中我们发现那三个橙色

    2024年02月02日
    浏览(68)
  • Unity3D物体自动躲避障碍物

            2017.4.4f1         物体向前发射一个射线,检测到碰撞后,根据碰撞信息选择新的方向。最终结果如下。 通过发射虚拟胶囊体来检测碰撞api bool Physics.CapsuleCast (Vector3 point1, Vector3 point2, float radius, Vector3 direction, out RaycastHit hit, float maxDistance)  points参数如图所示,

    2023年04月24日
    浏览(68)
  • unity3D 鼠标滚轮实现物体的大小缩放

    鼠标滚轮响应函数是Input.GetAxis(\\\"Mouse ScrollWheel\\\"),函数返回值类型是float,向前滚是返回正数,向后滚是返回负数,且鼠标滚轮滑动单次函数返回值为0.1 利用返回值修改模型transform.localscale,实现模型缩放 鼠标滚轮一直向后滚,会看见模型逐渐变小,当变到很小到消失的时候,

    2024年02月08日
    浏览(81)
  • Unity3d中关于物体穿透模型和物体移动的一些问题

    第一:可能是没有设置刚体和碰撞体; 第二种:一般是由于被穿透物体太过于薄弱,根本没有检测到碰撞的问题,这种情况可以把物体加厚。但偶尔是不能解决问题的,因为这种情况下是由于物体移动的速度过快导致的。 第三;关于物体自己动的问题,那是物体移动脚本和物

    2024年02月11日
    浏览(77)
  • Unity3d 物体不动,碰撞触发不了的情况

    问题: 有一种情况,主角带刚体,主角站着不动。玩家站在陷阱上,陷阱的碰撞体 Toggle 之后, OnCollisionEnter 触发不了。 解决:盲猜玩家组件上才有刚体,而碰撞检测是刚体运动的时候,才进行检测的。

    2024年02月06日
    浏览(64)
  • Unity3D 获取子孙物体并修改材质球属性

    如图要获取划线物体并修改其材质球: private Transform[] FindChild; public Material ChangeMat;//变换后的材质球 private Material mat; void Start() {         FindChild = this.gameObject.GetComponentsInChildrenTransform(true);//true表示包括隐藏物体的查找         foreach (Transform child in FindChild)         {  

    2024年02月15日
    浏览(67)
  • Unity3D学习 ② 物体的正常跳跃、二段跳、冲刺

    限制物体在按下跳跃键的时候只能跳跃一次。而不是能够无限跳跃。 具体实现思路是:给地面设置标签,检测物体是否和地面碰撞。 1.1.1 地面(plane)标签设置 我们为了物体能够正常跳跃,需要给地面添加一个标签。 点击地面plane 再点击 tag 下面的AddTag选项 在AddTag页面点击➕

    2023年04月08日
    浏览(87)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包