Unity Collision教程 之 碰撞接触点的快速获取

 时间:2024-10-12 01:36:34

Unity Collision教程 之 碰撞接触点的快速获取。本节介绍两个物体碰撞的接触点的获取的简单案例,具体如下

工具/原料

Unity

Collision

一、知识要点

1、MonoBehaviour.OnCollisionEnter猾诮沓靥(Collision):1)功能简述otherThe Collision data associated with t茑霁酌绡his collision.OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.In contrast to OnTriggerEnter, OnCollisionEnter is passed theCollisionclass and not aCollider. TheCollisionclass contains information about contact points, impact velocity etc. If you don't use collisionInfo in the function, leave out the collisionInfo parameter as this avoids unneccessary calculations. Notes: Collision events are only sent if one of the colliders also has a non-kinematic rigidbody attached. Collision events will be sent to disabled MonoBehaviours, to allow enabling Behaviours in response to collisions.2)使用举例using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour{ AudioSource audioSource; void Start() { audioSource = GetComponent<AudioSource>(); } void OnCollisionEnter(Collision collision) { foreach (ContactPoint contact in collision.contacts) { Debug.DrawRay(contact.point, contact.normal, Color.white); } if (collision.relativeVelocity.magnitude > 2) audioSource.Play(); }}

2、Collision.contacts:1犬匮渝扮)功能简述public ContactPoint[]contacts;The contact points generated by the physics engine.Every contact contains a contact point, normal and the two colliders that collided (seeContactPoint). From insideOnCollisionStayorOnCollisionEnteryou can always be sure thatcontactshas at least one element.2)使用举例using UnityEngine;using System.Collections;public class ExampleClass : MonoBehaviour { void OnCollisionStay(Collision collision) { foreach (ContactPoint contact in collision.contacts) { print(contact.thisCollider.name + " hit " + contact.otherCollider.name); Debug.DrawRay(contact.point, contact.normal, Color.white); } }}

二、Collision教程 之 碰撞接触点的快速获取

1、打开Unity,新建一个空工程,具体如下图

Unity Collision教程 之 碰撞接触点的快速获取

3、在场景中,新建一个粒子系统,调整好参数,并把它作为预制体,具体如下图

Unity Collision教程 之 碰撞接触点的快速获取

5、“CollisionTest”脚本上编写代码,首先设置变量,然后实现碰撞进入后在接触点生成物体,具体代码和代码说明如下图

Unity Collision教程 之 碰撞接触点的快速获取Unity Collision教程 之 碰撞接触点的快速获取
  • Unity3d中物体怎么向前方发射一条射线
  • 乱世三国志怎么获得武将
  • 登泰山看日出的一些经验
  • SQL查询:[4]分组查询
  • 怎样做茄子菜
  • 热门搜索
    纤维素是什么 away什么意思 大学是什么 7月7日是什么星座 什么是个体工商户 light什么意思 女生说98是什么意思 什么是放疗 泛滥是什么意思 台账是什么意思