首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏hrscy

    Unity 基础 - 刚体和 Collider

    Please try again.] 2.Collider Collider 组件的主要功能是进行碰撞检测,使用刚体时,一般都会和 Collider 共同使用。 创建游戏物体时都会默认创建一个 Box Collider (盒型碰撞器),在 Cube 的边框上,主要作用是界定一个范围,也就是一个包围盒,来检测是否发生碰撞 ? 移动Box的center.gif 3.碰撞和触发事件 发生碰撞的两个物体必须带有 Collider ,发生碰撞的两个物体至少有一个带有刚体,发生碰撞的两个物体必须有相对运动。 other) { } // 当持续在触发范围内发生时调用 void onTriggerStay (Collider other) { } // 离开触发范围会调用一次 void onTriggerExit (Collider other) { } // -------

    2.1K41发布于 2018-08-30
  • 来自专栏饶文津的专栏

    【CodeForces 699A】Launch of Collider

    维护最新的R,遇到L时如果R出现过就更新答案。 #include <cstdio> #include <algorithm> using namespace std; int n,x,r=-1,ans=-1; char a[200005]; int main(){ scanf("%d%s",&n,a); for(int i=0;i<n;i++){ scanf("%d",&x); if(a[i]=='R') r=x; el

    35410发布于 2020-06-02
  • 【CodeForces】699A - Launch of Collider(思维)

    Launch of Collider time limit per test 2 seconds memory limit per test 256 megabytes The coordinates of the particles coincide with the distance in meters from the center of the collider , xi is the coordinate of the i-th particle and its position in the collider at the same time. All particles begin to move simultaneously at the time of the collider's launch start. The collider is big enough so particles can not leave it in the foreseeable time.

    39110编辑于 2025-08-26
  • 来自专栏星河造梦坊专栏

    小功能⭐️关于Unity Collider Physics.Overlap

    前言 Unity Collider的检测目前接触到的可以分为两种: OnTrigger、OnCollider Physics.Overlap 下面我们重点记录下第二种方法的应用。 b、自身可不需要Collider、Rigidbody。是以代码设定好的范围,去检测周围是否有collider。且要检测的collider也不需要有rigidbody。 下面代码要用到collider完全是因为可视化检测区域。 建议: 因为检测不是基于碰撞,但需要可视化检测范围。建议直接将脚本挂载在对应形状的3D物体上。 Start时可隐藏MeshRenderer、Collider。 也可将脚本挂载到其他物体上,下面代码transform前加上正确位置的gameObject(检测它的位置)。 可调整Collider Radius、Height,可旋转。 d、可视化的CapsuleCollider就是检测范围。

    56910编辑于 2024-08-16
  • 来自专栏用户10004205的专栏

    Unity 【Wheel Collider】实现游戏中的车具控制

    Wheel Collider专门用于模拟车具轮胎的物理属性,内置了碰撞检测、轮胎摩擦模型等,可以用于实现车具的控制。 车轮在侧向转动时的摩擦力 了解了这几个核心变量后,下面简单实现车具的控制: 1.首先给车具模型添加刚体组件,假设重量为2吨,将Mass设为2000: 2.为每个车轮模型添加一个空父级,添加Wheel Collider 组件,假设每个轮胎的重量为20kg: 3.注意Wheel Collider碰撞器不能被车身的碰撞器包裹,否则车子不会移动。 另外注意如果没有给车身添加Rigybody组件的话,Scene窗口也是看不到Wheel Collider的。 4.为Wheel Collider添加motorTorque驱动力,声明一个float类型的变量,暂定为200f, 假设车辆为后驱,给两个后轮添加驱动力: [SerializeField] private

    1.8K30编辑于 2022-08-29
  • 来自专栏码客

    Unity2D开发入门-Collider 碰撞体与碰撞检测

    前言 在Unity2D中,有多个Collider组件可用于进行碰撞检测和物体交互。 以下是一些常用的Collider组件及其功能介绍: Box Collider 2D(盒碰撞器):创建一个矩形的碰撞器,可以通过设置大小属性来定义碰撞器的宽度和高度。 Circle Collider 2D(圆形碰撞器):创建一个圆形的碰撞器,可以通过设置半径属性来定义圆的大小。 Edge Collider 2D(边缘碰撞器):创建一个由一系列直线段组成的碰撞器,用于定义边缘、墙壁或地图的碰撞形状。 无论使用哪种碰撞检测方式,都需要在物体上添加对应的碰撞器组件(如Box Collider、Circle Collider等),以及处理相应的碰撞事件。

    4.8K20编辑于 2023-07-24
  • 来自专栏星河造梦坊专栏

    物理引擎Rigidbody组件、Collider组件、Raycast

    如果对象身上还挂载着Collider(碰撞)组件,那么该对象还受到碰撞物理效果影响,例如游戏中的被车撞飞 一、Rigidbody组件 Rigidbody组件Unity Manual介绍:Rigidbody 二、Collider组件 物体运动轨迹改变有两个方式,碰撞或代码。上例没有发生碰撞,力无法传递过去,但没碰撞我们就无法传递力了吗?也可以! 通过物理引擎Collider组件的代码,Physics.OverlapSphere(Vector3 position,float radius)方法返回带有Collider的对象,我们只需要遍历他们并给他们的 有Collider组件,才额外进行碰撞计算 using UnityEngine; public class CubeAddForce : MonoBehaviour { private Rigidbody 为半径,连接起来构成一个胶囊体 Physics.OverlapCapsule(pointBottom, pointTop, radius, LayerMask); foreach(Collider

    87510编辑于 2024-08-14
  • 来自专栏Creator星球游戏开发社区

    冰冰教你用“四叉树”手写“碰撞检测”,太感动了!

    cc.Collider。 返回准备测试的 cc.Collider[] 和发生碰撞的 cc.Collider[]。 _all_collider, this.collider_role); // retrieve 准备测试的对象(预览图中的绿色) cc.Collider[] // contacts 碰撞对象(预览图中的红色 function testContact(collider1, collider2) { // 分组不通过 if (! check(colliders: cc.Collider[], testCollider: cc.Collider) { const ret: { retrieve: cc.Collider[]

    3.4K20发布于 2020-07-09
  • 来自专栏全栈程序员必看

    Cinemachine(二)制作不会穿墙(会避开障碍物)的摄像头(Cinemachine Collider

    Cinemachine Collider 简介 Cinemachine Collider会对我们VirtualCamera的位置进行后期处理,来保持Camera的视线不会被障碍物所遮挡。 添加了Cinemachine Collider后,VirtualCamera会做下列事情: 使Camera远离场景中阻挡视线的障碍物 若障碍物在Camera和Look At的目标之间,则移动Camera 到障碍物前方 计算拍摄质量(shot quality) Cinemachine Collider原理是利用物理射线(Physics Raycaster)检测,因此需要潜在的障碍物都要带有碰撞体组件,这会导致性能消耗 CinemachineVirtualCamera.State.ShotQuality 属性 了解了Cinemachine Collider的功能后,我们先来看看它里面的一些相关属性的含义,只有了解了各个属性的意义

    2.1K11编辑于 2022-08-24
  • 来自专栏CSDN小华

    Unity【Colliders碰撞器】和【Rigibody刚体】的应用——小球反弹效果

    Collider 2D 定义: Collider 2D是一个组件,它为游戏对象提供了一个物理边界,允许与其他具有相同或不同类型的Collider 2D进行碰撞检测。 类型: Unity提供了多种类型的Collider 2D,包括: Box Collider 2D:矩形形状的碰撞器,非常高效且适用于可交互的形状。 2、Unity中Collider 2D的高级使用技巧 在Unity中,Collider 2D的高级使用技巧包括以下几点: 使用Polygon Collider 2D:对于更复杂的形状,Unity会尝试创建一个既简单又复杂的碰撞器形状 为此,你需要使用Polygon Collider 2D。你可以通过点击编辑器中的“Edit Collider”按钮来调整碰撞器的形状。 理解Collider 2D的作用:Collider 2D组件定义了物体的碰撞区域,使得Unity的物理引擎可以检测到物体之间的碰撞事件。

    1.8K10编辑于 2024-10-16
  • 来自专栏码客

    Unity2D游戏开发-游戏对象和组件的查找方式

    Collider2D[] colliders = Physics2D.OverlapCircleAll( this.transform.position, 100 ); foreach (Collider2D collider in colliders) { if (collider.gameObject.CompareTag("Enemy")) { Debug.Log ("Enemy") ); foreach (Collider2D collider in colliders) { Debug.Log("发现敌人!") collider = hit.collider; // 获取击中点的坐标 Vector2 hitPoint = hit.point; // 做出响应... Debug.Log("射中敌人:" + collider.name + "位置:" + hitPoint.ToString()); } 查找组件 通过组件查找(GetComponent)使用gameObject

    97030编辑于 2023-08-08
  • 来自专栏星河造梦坊专栏

    SteamVR 1.x☀️一、实现手与物体交互——基于[CameraRig]

    device = SteamVR_Controller.Input((int)trackedObject.index); } 4、手柄与Box的碰撞检测 给两个Controller添加Sphere ColliderCollider并稍微缩小到合适大小,勾选Is Trigger,给盒子添加Rigidbody private void OnTriggerEnter(Collider other){ } private void OnTriggerExit(Collider other){ } 5、获取按钮事件 void Update () { if (device.GetPressDown other) { interactBox = other.transform.gameObject; } void OnTriggerExit(Collider other) { interactBox = null; } void OnTriggerStay(Collider other) {

    50710编辑于 2024-08-14
  • 来自专栏全栈程序员必看

    Unity 角色控制器重复使用Ragdoll布娃娃系统,动画控制和布娃娃状态切换

    public List<Rigidbody> RagdollRigidbodys = new List<Rigidbody>(); public List<Collider> RagdollColliders = new List<Collider>(); void InitRagdoll() { Rigidbody[] Rigidbodys = GetComponentsInChildren //排除正常状态的Rigidbody continue; } //添加Rigidbody和Collider RagdollCollider = Rigidbodys[i].gameObject.GetComponent<Collider>(); RagdollCollider.isTrigger (false)); } 当角色复活或站起来时,关闭布娃娃系统 void DisableRagdoll() { //关闭布娃娃状态的所有Rigidbody和Collider

    1.3K30编辑于 2022-11-17
  • 来自专栏技术成长

    Unity中进行碰撞检测的基本方法、原理与实现例子

    Unity中进行碰撞检测的基本方法使用Unity提供的Collider组件和Rigidbody组件来进行碰撞检测。 Collider是用于给游戏对象添加碰撞体积的组件,包括Box Collider、Sphere Collider、Capsule Collider、Mesh Collider等。 当两个带有Collider组件的游戏对象接近或重叠时,物理引擎会检测到碰撞,并触发相应的碰撞事件。 Unity的碰撞检测基于碰撞体积(Collider)的相交判断,当两个碰撞体积相交时,物理引擎会认为发生了碰撞。 确保地图边界的碰撞器类型为Box Collider,使其与角色产生碰撞。在角色脚本中,使用OnCollisionEnter方法来检测碰撞事件。

    5.4K32编辑于 2023-08-05
  • 来自专栏章鱼的慢慢技术路

    使用Unity中的Box Collider组件完成游戏场景中的碰撞检测功能

    软件环境:Unity 2017.3.0f3 二、实现过程 1,在面板中点击Add Component按钮 2,添加Box Collider组件 3,调整碰撞范围 4,运行程序后测试效果

    1.9K40发布于 2018-06-04
  • 来自专栏星河造梦坊专栏

    Unity动画☀️9. 木头自转、扛起木头、OnTriggerEnter

    导入木头Log,找回丢失的贴图,通过Perfab的Model—Scale Factor调节导入比例—0.3 2️⃣ 控制策略:通过检测木头与人物的碰撞,控制人物捡起木头 3️⃣ 给木头添加Sphere Collider transform.position + Vector3.up * 1.5f, transform.forward, out hit, 5f)) { if (hit.collider.tag ); unityLog.SetActive(true); } } } OnTriggerEnter 该函数触发的条件: 1️⃣ 两个物体都必须有碰撞器(Collider )组件; 2️⃣ 其中一个物体的碰撞器(Collider)的IsTrigger属性必须勾上; 3、最重要的一点,其中一个物体必须有刚体(Rigidbody)组件。 此动画人物为Character Controller组件,木头为Sphere Collider组件,且勾选了Is Trigger 动画展示: 大家还有什么问题,欢迎在下方留言!

    47210编辑于 2024-08-14
  • 来自专栏码艺坊

    Unity脚本编程:C#脚本中的常用组件详解

    本文将深入探讨Unity脚本编程中常用的C#脚本组件,包括 Transform、Rigidbody、Collider、Input、Time 和 Mathf,并通过示例代码展示它们的实际应用。1. Collider组件Collider 用于检测游戏对象之间的碰撞。常见的Collider类型包括 BoxCollider、SphereCollider 和 CapsuleCollider。 常用属性和方法:• isTrigger:设置为true时,Collider会触发事件而不产生物理碰撞。• OnCollisionEnter():当碰撞发生时调用。 collision) { Debug.Log("碰撞到物体:" + collision.gameObject.name); } void OnTriggerEnter(Collider lerpValue, 0, 100); Debug.Log("限制后的值:" + clampedValue); }}总结在Unity脚本编程中,Transform、Rigidbody、Collider

    1.2K21编辑于 2025-03-20
  • 来自专栏C++开发学习交流

    【Unity】触发检测并销毁食物

    设置触发检测 还是在碰撞检测Box Collider这里,有一个是否是触发器,这里勾上,就从碰撞检测转为触发检测了; 脚本调用触发函数 触发检测是OnTriggerEnter函数,然后销毁的判断从碰撞检测那边迁移过来 Collision collision) //{ // //Debug.Log("保持碰撞了"); //} private void OnTriggerEnter(Collider { Destroy(other.gameObject); } } //private void OnTriggerExit(Collider other) //{ // Debug.Log("触发退出" + other.tag); //} //private void OnTriggerStay(Collider

    32210编辑于 2024-07-24
  • 来自专栏kalifaの日々

    Unity学习笔记之子弹发射

    Collider Collider勾选isTrigger代表碰撞作为一个trigger。 相关函数示例: void OnTriggerEnter(Collider other) { Destory(other.gameObject); } void OnTirggerExit(Collider

    1.6K20发布于 2019-06-11
  • 来自专栏星河造梦坊专栏

    VRTK☀️四、瞬移

    基础配置 基础配置地址 瞬移的几种方式 1️⃣ 全图基于Collider的基础瞬移 该效果能通过射线,瞬移到任何有Collider的物体上。但会穿过有Collider的箱子。 即虽然传送到Collider那了,但自身高度未调整。 :相应瞬移的机制 使用NavMesh控制瞬移的数值 2️⃣ 自适应高度瞬移 该效果能通过射线,瞬移到任何有Collider的物体上。 不会穿过有Collider的箱子。会站到箱子上面。 将该预制件 DestinationPoint 缩放成一个区域,并添加Collider(调到合适大小)即可。 大家还有什么问题,欢迎在下方留言!

    51310编辑于 2024-08-15
领券