UnityAPI学习之碰撞检测与触发检测

碰撞检测

发生碰撞检测的前提:

  1. 碰撞的物体需要有Rigidbody组件和boxcllidder组件

  2. 被碰撞的物体需要有boxcollider组件

示例1:被碰撞的物体拥有Rigidbody组件

两个物体会因为都具有刚体的组件而发生力的作用,如下图所示,当被碰撞的物体被碰撞时,两物体的刚体组件(Rigidbody组件)发生力的作用,从而达到gris(3)推着gris(1)向左移动的效果

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NO18_Collider : MonoBehaviour
{
    public float speed;
    private void Update()
    {
        transform.Translate(Vector2.left * speed * Time.deltaTime,Space.World);
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        print("碰撞的物体为" + collision.gameObject.name);
    }

}

示例2:被碰撞的物体没有Rigidbody组件

被碰撞的物体没有刚体组件(Rigidbody组件),因此gris(3)不会推着gris(1)向左移动

触发检测

发生触发检测的前提:

  1. 碰撞的物体需要有Rigidbody组件和boxcllidder组件

  2. 被碰撞的物体需要有boxcollider组件并勾选IsTrigger选项

示例:

cs 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NO18_Collider : MonoBehaviour
{
    public float speed;
    private void Update()
    {
        transform.Translate(Vector2.left * speed * Time.deltaTime,Space.World);
    }
    private void OnCollisionEnter2D(Collision2D collision)
    {
        print("碰撞的物体为" + collision.gameObject.name);
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {
        print(collision.gameObject.name + "进入了");
    }
    private void OnTriggerStay2D(Collider2D collision)
    {
        print(collision.gameObject.name + "停留");
    }
    private void OnTriggerExit2D(Collider2D collision)
    {
        print(collision.gameObject.name + "走出了");
    }
}
相关推荐
檀越剑指大厂1 小时前
【Elasticsearch系列廿】Logstash 学习
大数据·学习·elasticsearch
游乐码2 小时前
c#类和对象
开发语言·c#
woodykissme3 小时前
渐开线圆柱齿轮几何计算全解析(一):从理论到实践的完整指南
学习·齿轮·齿轮加工
Asher阿舍技术站4 小时前
【AI基础学习系列】四、Prompt基础知识
人工智能·学习·prompt
CappuccinoRose5 小时前
CSS 语法学习文档(十三)
前端·css·学习·postcss·模块化·预处理器
im_AMBER5 小时前
Leetcode 121 翻转二叉树 | 二叉树中的最大路径和
数据结构·学习·算法·leetcode
沃码6 小时前
【Lively Wallpaper 】插件开发:LivelyProperties.json 全流程实战教程
c#·json·livelywallpaper·视频壁纸
じ☆冷颜〃6 小时前
随机微分层论:统一代数、拓扑与分析框架下的SPDE论述
笔记·python·学习·线性代数·拓扑学
前路不黑暗@8 小时前
Java项目:Java脚手架项目的地图服务(十)
java·数据库·spring boot·笔记·学习·spring cloud·maven
-To be number.wan9 小时前
算法学习日记 | 双指针
c++·学习·算法