需要注意的是, 一旦产生碰撞事件, 双方都会触发 OnCollision 的 Unity 消息. 而且所传入的 Collision 参数也是不一样的. 但是无论怎样, Collision 的 collider 属性都是与当前碰撞的碰撞体实例 (otherCollider 属性一般很少用到) 碰撞事件有下面这些 触发事件 / OnTrigger 使用触发器, 并且
Instantiate(GameObject original): 复制游戏对象。 Destroy(GameObject obj): 销毁游戏对象。 Find(string name): 查找指定名称的游戏对象。 代码示例: GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube); // 创建立方体 GameObject clone = Instantiate(cube); // 复制立方体 Destroy(cube); // 销毁...
玩家的选择器或接近选择器向GameObject发送一个OnUse消息,或在UnityEvent或脚本中手动调用对话系统触发器的OnUse()方法。 On Start 在开始 组件启动(例如,在场景启动时)。 On Enable 在启用 组件已启用。 On Disable 在禁用 组件被禁用。 On Destroy 在摧毁 组件被破坏了。 On Trigger Enter 在触发输入 组件已...
OnCollisionEnter(): 当发生碰撞时触发(物理系统)。 OnDestroy(): 对象被销毁时调用。 FixedUpdate()每固定时间调用一次(适合物理运算) LateUpdate()每帧结尾调用一次,常用于摄像机跟随 OnEnable()脚本启用时调用 OnDisable()脚本禁用时调用 2.组件控制类方法 GetComponent<T>()获取当前对象上的组件 AddComponent<T...
Destroy(gameObject); // 销毁敌人对象 } } 这个示例代码演示了如何使用OnCollisionEnter函数来控制玩家子弹和敌人之间的交互,并实现了基本的伤害和死亡逻辑。在实际游戏中,你可能需要更多的代码来实现更复杂的交互,但这个示例代码可以作为一个良好的起点。
Unity 两物体的碰撞 OnTriggerEnter和OnCollisionEnter 目录1 加脚本 2 Collision.cs 3 另一个碰撞体设计 4. 运行时拖动有rigidbody的cube1,如果移动没有rigidbody的则没有效果。 5, 要把cube1的x,y,z固定了,不然一撞就飞了。 6 Refs 6.1 unity3D OnTriggerEnter和OnCollisionEnter的一点个人心得(主要讲区别)...
void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag("Enemy")) { Enemy enemy = collision.gameObject.GetComponent<Enemy>(); enemy.TakeDamage(damage); // 减少敌人的生命值 } Destroy(gameObject); // 销毁子弹 }
OnDestroy: This function is called after all frame updates for the last frame of the object’s existence (the object might be destroyed in response to Object.Destroy or at the closure of a scene). When Quitting These functions get called on all the active objects in your scene: ...
物理碰撞OnCollision,发生真实的碰撞效果(互撞被推开),实际是一个碰撞器 条件:两个物体都必须带有碰撞器(Collider),最少一个物体带有Rigidbody刚体。 1.MonoBehaviour.OnCollisionEnter(Collision collision) 当进入碰撞器 2.MonoBehaviour.OnCollisionExit(Collision collision) 当退出碰撞器 ...
{ } private void OnCollisionEnter(Collision collision) { if(collision.gameObject.tag!="bullet") { return; }Destroy(collision.gameObject); } private void OnTriggerStay(Collider other) { if (other.gameObject.tag != "bullet") return; if (other.attachedRigidbody) other.attachedRigidbody.AddForce...