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 + "走出了");
    }
}
相关推荐
我是唐青枫40 分钟前
C# 泛型数学:解锁真正的类型安全数值运算
c#·.net
故事不长丨6 小时前
C#定时器与延时操作的使用
开发语言·c#·.net·线程·定时器·winform
变身缎带6 小时前
Unity中的NetworkManager基于protobuf, Socket-TCP
tcp/ip·unity·游戏引擎
阿桂有点桂6 小时前
C#使用VS软件打包msi安装包
windows·vscode·c#
盐焗西兰花6 小时前
鸿蒙学习实战之路 - 图片预览功能实现
学习·华为·harmonyos
c#上位机6 小时前
halcon图像增强之分段灰度拉伸2
c#·上位机·halcon·机器视觉
yue0087 小时前
C# Directory的用法介绍
开发语言·c#
Xudde.7 小时前
friendly2靶机渗透
笔记·学习·安全·web安全·php
知识分享小能手7 小时前
CentOS Stream 9入门学习教程,从入门到精通, CentOS Stream 9 命令行基础 —语法知识点与实战详解(4)
linux·学习·centos
码界奇点7 小时前
Java Web学习 第15篇jQuery从入门到精通的万字深度解析
java·前端·学习·jquery