首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >每次我使用OnCollisionEnter2D,它都不起作用

每次我使用OnCollisionEnter2D,它都不起作用
EN

Stack Overflow用户
提问于 2022-05-11 19:14:33
回答 1查看 32关注 0票数 0

我想让球每次碰到桨时都要提高速度,但它不起作用。

ball.cs

代码语言:javascript
运行
复制
using UnityEngine;

public class Ball : MonoBehaviour
{
    [SerializeField] private float velocityMultiplier = 1.1f;

    private void OnCollisioEnter2D(Collision2D collision)
    {
        if (collision.gameObject.CompareTag("Paddle"))
        {
            ballRb.velocity *= velocityMultiplier;
        }
    }
}

这是一位巡查员

PaddleA

而桨B是一样的

EN

回答 1

Stack Overflow用户

发布于 2022-05-11 19:19:55

你的校对似乎被标记为“运动学”。它不响应对撞机,只能用脚本移动。

从医生那里:

运动刚体对撞机 这是一个带有对撞机和运动刚体的GameObject (即启用了刚体的IsKinematic属性)。您可以通过修改其转换组件从脚本中移动一个运动刚体对象,但是它不会像非运动刚体那样对碰撞和力作出响应。运动刚体应用于对撞机,有时可以移动或禁用/启用,但在其他情况下应该像静态对撞机那样运行。这方面的一个例子是一个滑动门,通常应该作为一个不可移动的物理障碍,但可以在必要时打开。与静态对撞机不同,运动刚体会对其他物体施加摩擦,当其他刚体接触时会“唤醒”其他刚体。

来源:https://docs.unity3d.com/Manual/CollidersOverview.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72206457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档