当前位置: 首页 > news >正文

营销企业网站制作免费建自己的网址

营销企业网站制作,免费建自己的网址,mip网站建设,湘潭网站建设价格Unity碰撞检测3D和2D 前言准备材料3D2D 代码3D使用OnCollisionEnter()进行碰撞Collider状态代码 使用OnTriggerEnter()进行碰撞Collider状态代码 2D使用OnCollisionEnter2D()进行碰撞Collider2D状态代码 使用OnTriggerEnter2D()进行碰撞Collider2D状态代码 区别3D代码OnCollisi…

Unity碰撞检测3D和2D

  • 前言
  • 准备材料
    • 3D
    • 2D
  • 代码
    • 3D
      • 使用OnCollisionEnter()进行碰撞
        • Collider状态
        • 代码
      • 使用OnTriggerEnter()进行碰撞
        • Collider状态
        • 代码
    • 2D
      • 使用OnCollisionEnter2D()进行碰撞
        • Collider2D状态
        • 代码
      • 使用OnTriggerEnter2D()进行碰撞
        • Collider2D状态
        • 代码
    • 区别
      • 3D
        • 代码
          • OnCollisionEnter()
          • OnTriggerEnter()
        • 碰撞显示效果
          • OnCollisionEnter()
          • OnTriggerEnter()
      • 2D
        • 代码
          • OnCollisionEnter2D()
          • OnTriggerEnter2D()
        • 碰撞显示效果
          • OnCollisionEnter2D()
          • OnTriggerEnter2D()
  • 提示
  • 结语

前言

碰撞检测可以说时学习Unity中最重要的一个部分,以为在游戏中,想要游戏进行交互,碰撞时非常重要的,而我在网上查了很多教程,但是都没有成功,后来经过我的仔细检查代码与修改,终于成功了

准备材料

3D

简单Unity跑酷游戏
简单跑酷游戏
zhong_dotPlayer两个实体都加上碰撞体组件
比如:Box Collider
Player加上刚体组件
比如:Rigidbody
把刚体组件里面的Collision Detection模式改为Cintinuous

2D

在这里插入图片描述

zhong_dotPlayer两个实体都加上碰撞体组件
比如:Box Collider 2D
Player加上刚体组件
比如:Rigidbody 2D
把刚体组件里面的Collision Detection模式改为Cintinuous

代码

这一个我们将代码写在Player_move.cs里面

3D

使用OnCollisionEnter()进行碰撞

Collider状态

在这里插入图片描述

代码

void OnCollisionEnter(Collision collision){if (collision.gameObject.name == "zhong_dot"){Debug.Log("开始碰撞");}
}

此时我们可以看到,在碰撞函数里面的参数类型是Collision
并且指定的碰撞检测方式,if里面写的表达式是

参数名.gameObject.name ==  "碰撞目标的名称"

使用OnTriggerEnter()进行碰撞

Collider状态

在这里插入图片描述
从上图中可以看出是Is Trigger是出于勾选的状态,并且只需要其中一个勾选Is Trigger状态即可

代码

void OnTriggerEnter(Collider collision){if (collision.GetComponent<Collider>().name == "zhong_dot"){Debug.Log("开始碰撞")}
}

此时我们可以看到,在碰撞函数里面的参数类型是Collider
并且指定的碰撞检测方式,if里面写的表达式是

参数名.GetComponent<Collider>().name == "碰撞目标的名称"

2D

使用OnCollisionEnter2D()进行碰撞

Collider2D状态

在这里插入图片描述

代码

void OnCollisionEnter2D(Collision2D collision){if (collision.gameObject.name == "zhong_dot"){Debug.Log("开始碰撞");}
}

此时我们可以看到,在碰撞函数里面的参数类型是Collision2D
并且指定的碰撞检测方式,if里面写的表达式是

参数名.gameObject.name ==  "碰撞目标的名称"

使用OnTriggerEnter2D()进行碰撞

Collider2D状态

在这里插入图片描述

从上图中可以看出是Is Trigger是出于勾选的状态,并且只需要其中一个勾选Is Trigger状态即可

代码

void OnTriggerEnter2D(Collider2D collision){if (collision.GetComponent<Collider2D>().name == "zhong_dot"){Debug.Log("开始碰撞")}
}

此时我们可以看到,在碰撞函数里面的参数类型是Collider2D
并且指定的碰撞检测方式,if里面写的表达式是

参数名.GetComponent<Collider2D>().name == "碰撞目标的名称"

区别

3D

代码

OnCollisionEnter()

此时我们可以看到,在碰撞函数里面的参数类型是Collision
并且指定的碰撞检测方式,if里面写的表达式是

参数名.gameObject.name == "碰撞目标的名称"
OnTriggerEnter()

此时我们可以看到,在碰撞函数里面的参数类型是Collider
并且指定的碰撞检测方式,if里面写的表达式是

参数名.GetComponent<Collider>().name == "碰撞目标的名称"

碰撞显示效果

OnCollisionEnter()

就会有碰撞之后被弹开的结果

OnTriggerEnter()

就不会有碰撞之后被弹开的结果

2D

代码

OnCollisionEnter2D()

此时我们可以看到,在碰撞函数里面的参数类型是Collision2D
并且指定的碰撞检测方式,if里面写的表达式是

参数名.gameObject.name == "碰撞目标的名称"
OnTriggerEnter2D()

此时我们可以看到,在碰撞函数里面的参数类型是Collider2D
并且指定的碰撞检测方式,if里面写的表达式是

参数名.GetComponent<Collider2D>().name == "碰撞目标的名称"

碰撞显示效果

OnCollisionEnter2D()

就会有碰撞之后被弹开的结果

OnTriggerEnter2D()

就不会有碰撞之后被弹开的结果

提示

我建议你们在写代码的时候,一定要仔细查看代码的大小写,否则程序会不知不觉不出现结果,就像我,写一个On结果写成了on,导致一直没有结果

结语

其实学习Unity没有那么难,只要你真心想学,就还是能学得会

http://www.hkea.cn/news/895785/

相关文章:

  • 网站维护收费推广产品吸引人的句子
  • 怎么用一个主机做多个网站许昌网络推广公司
  • 网站域名所有权郑州网站运营专业乐云seo
  • 桂园精品网站建设费用网站seo查询站长之家
  • 安卓手机怎么做网站站长工具seo综合查询广告
  • 余姚网站建设的公司手机百度账号申请注册
  • 预付网站制作费怎么做凭证如何自制网站
  • 定制网站多少钱北京seo网站管理
  • 南昌做网站公司哪家好如何建立独立网站
  • 成都解放号网站建设什么是百度竞价
  • 网站优化的基本思想与原则百度号码
  • 沧州网站建设制作设计优化深圳seo优化推广
  • 建立一个网站需要什么技术网上培训机构
  • 网站设计与管理论文百度账号注册平台
  • 网站空间商推荐seo是什么职位缩写
  • 怎么建设boss网站文件外链
  • 百度推广网站建设费百度搜索引擎的网址是多少
  • php 手机网站 上传图片定制网站建设
  • 关于网站建设的问题百度关键词分析
  • 登录官方网站装修公司网络推广方案
  • 设计网站官网入口网站搜索优化方法
  • 网站优化qq群山东做网站
  • wordpress icomoon太原seo快速排名
  • 中华建设杂志网站记者数据指数
  • 网站开发测试情况南召seo快速排名价格
  • 上海仓储公司小红书seo优化
  • 南京建设公司网站网络营销整合推广
  • wordpress更改语言沈阳seo优化
  • wordpress免费网站世界大学排名
  • 做网站的属于什么专业?百度爱采购竞价推广