首先,ugui的碰撞是可以用Collision2D跟Rigidbody2D实现的(就跟3D碰撞一样)。之前试过不可以主要问题正在于Collision2D以及Rigidbody的设置上。

碰撞双方都添加Collider2D但是没有调整碰撞器的大小。新建一个image添加box collider2d,它的size为x:1,y:1,而image默认的width和height为100...

然后是添加Rigidbody2D

Simulated是一定要勾选的,如果这个不勾选Collider 2D和Joint 2D 就没有效果。如果在运行时勾选了Simulated会看到对象受重力影响(也就是往下掉),所以这里要把Linear Drag, Angular Drag,Gravity Scale这几个力的作用设为0.

然后就要根据情况来设定你是要用trigger还是collision了。

这里就跟3d一样了,假如用trigger,要将碰撞双方中的其中一个将Collider的is trigger勾选,勾选谁是要求而定。is trigger勾选之后,它的位置就不会用碰撞影响了。

脚本检测事件用(双方都要添加collider2d,至少一方添加rigidbody2d)

// 开始接触
//void OnTriggerEnter2D(Collider2D collider) {
// Debug.Log("开始接触");
// Debug.Log (collider.name);
//} //// 接触结束
//void OnTriggerExit2D(Collider2D collider) {
     if(collider!=null)
      //{
        //	Debug.Log("接触结束");
   //Debug.Log (collider.name);
  //}
  
     //}
  

	//// 接触持续中
//void OnTriggerStay2D(Collider2D collider) {
// Debug.Log("接触持续中");
// Debug.Log (collider.name);
//}

  只要对象一直在勾选is trigger的对象的collision范围之内,OnTriggerStay2D就会一直触发。

如果要用collision来检测的话,脚本用
//void OnCollisionEnter2D(Collision2D coll) {
// Debug.Log ("-------开始碰撞------------");
// Debug.Log(coll.gameObject.name);
//} //void OnCollisionStay2D(Collision2D coll) {
// Debug.Log ("------正在碰撞-------------");
// Debug.Log(coll.gameObject.name);
//} //void OnCollisionExit2D(Collision2D coll) {
// Debug.Log ("------结束碰撞-------------");
// Debug.Log(coll.gameObject.name);
//}

  这时候is trigger就不要勾选了,也是双方都要添加collider2d,至少一方添加rigidbody2d,不要忘了勾选rigidbody2d下的simulated...

unity 2d碰撞/ui组件碰撞的更多相关文章

  1. 【Unity】11.3 基本碰撞体(箱体、球形、胶囊、网格)

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 碰撞组件(Collider) 是另一种必须随刚体 (Rigidbody) 添加的组件,以便允许它和其他组件发生碰撞.或者 ...

  2. 关于Unity中的刚体和碰撞器的相关用法(二)

    在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机 ...

  3. 关于Unity中的刚体和碰撞器的相关用法(一)

    1.创建一个3D工程 2.构造项目文件目录 3.保存场景为game_scene到文件夹scenes中 4.创建一个Plane平面类型的GameObject节点和一个Sphere球体类型的GameObj ...

  4. 游戏中的2D OBB碰撞模型的碰撞算法介绍和实践

    前言 上一篇博文说道,射线与场景中模型上的所有三角形求交时,会大幅度影响效率且花费比较多的时间,因此会采取使用包围盒的形式,进行一个加速求交.在此文中介绍OBB碰撞模型的碰撞算法 OBB的碰撞模型 有 ...

  5. 关于Unity中的Mesh Collider碰撞器

    原来我的场景中有一个平面Plane带Mesh Collider碰撞器组件,一个主角Hero带有一个Box Collider碰撞器和有重力的Rigidbody刚体组件,主角可以放在平面上. 在导入场景后 ...

  6. Unity - 2D中的物理关节

    本文概述: 分析Unity中几个2D物理关节组件的基本功能.使用方法.运用场景等 开发环境:Unity2019.3.0a2 / VS2017 项目资源包: 2D Joints Starter 说明: ...

  7. Unity 2D游戏开发教程之游戏中精灵的跳跃状态

    Unity 2D游戏开发教程之游戏中精灵的跳跃状态 精灵的跳跃状态 为了让游戏中的精灵有更大的活动范围,上一节为游戏场景添加了多个地面,于是精灵可以从高的地面移动到低的地面处,如图2-14所示.但是却 ...

  8. Unity 2D 入门

    原文:Introduction to Unity 2D 作者:Sean Duffy 译者:kmyhy 3/15/17 更新说明: 升级至 Unity 5.5. Unity 是一个非常流行和强大的游戏引 ...

  9. NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D)

    NGUI创建Camera参数为Simple 2D的UI UI对象的结构UI Root(2D) 使用NGUI创建的Camera参数为Simple 2D的UI,会在游戏的场景中生成1个名为UI Root( ...

随机推荐

  1. This server is in the failed servers list: localhost/127.0.0.1:16000 启动hbase api调用错误

    api 调用发现错误 Mon Nov 18 23:04:31 CST 2019, RpcRetryingCaller{globalStartTime=1574089469858, pause=100, ...

  2. 学习:反调试之ZwQueryInformationProcess

    SetUnhandledExceptionFilter触发条件:1.当程序有异常,且没相应的处理 2.没有人进行反调试,满足这两个条件的时候,就会其中传输的参数(实则就是一个异常处理函数) 来进行处理 ...

  3. Excel-信息函数&数组公式

    1.IS系列函数-逻辑函数 is函数是一个逻辑函数,可以用来判断一些特定的内容 Istext判断单元格是否是文本 Isnumber判断单元格是否为数值 Istext和isnumber的判断的结果相反 ...

  4. RAMOS与PE 到底哪里不一样?

    RAMOS与PE 到底哪里不一样? 答:PE只是RAMOS的雏形.无论是system身份还是Administrator身份登录的PE都不能算是真正意义上的RAMOS. 号外号外,下面开始跑题..... ...

  5. 姿态角(RPY)的优化目标函数

    在Pose-Graph的过程中,如果使用G2O优化函数库,那么似乎是不用自己编写代价函数(也就是优化目标函数)的,因为G2O有封装好的SE3等格式,使得Pose-Graph的过程变得简单了,即只需要设 ...

  6. Consul 使用手册(感觉比较全了)

    HTTP API consul的主要接口是RESTful HTTP API,该API可以用来增删查改nodes.services.checks.configguration.所有的endpoints主 ...

  7. vins_fusion学习笔记

    Vins-Fusion源码:https://github.com/HKUST-Aerial-Robotics/VINS-Fusion 摘要 应项目需要,侧重学习stereo+gps融合 转载几篇写的比 ...

  8. 【前端知识体系-CSS相关】CSS基础知识强化

    1.CSS样式(选择器)的优先级? 1.1 权重的计算规则 第一优先级:无条件优先的属性只需要在属性后面使用!important.它会覆盖页面内任何位置定义的元素样式.(ie6支持上有些bug). 第 ...

  9. springboot+RabbitMQ 问题 RabbitListener 动态队列名称:Attribute value must be constant

    因为多机环境fanout广播模式,每台机器需要使用自己的队列接受消息 所以尝试使用以下的方案 private static final String QUEUE_NAME="foo.&quo ...

  10. java.lang.IllegalStateException: Received message from unsupported version: [5.2.2] minimal compatible version is: [5.6.0]

    启动elasticsearch-6.2.2-Windows服务时报错: java.lang.IllegalStateException: Received message from unsupport ...