所以,我正在开发一款数学足球游戏,我想添加一个守门员,当球与他碰撞时,他会做一个动画,然后接住球(然后它不会给出分数)。但我在使用
Physics.CheckSphere()
命令时遇到了问题。
我的代码:
using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using UnityEngine;
using UnityEngine.UI;
public class goalieAIController : MonoBehaviour
{
public Transform goalie;
public Transform goalieCollider;
public bool isBallAtGOALIE;
public LayerMask ballMaskLM;
public float ballDistance = 10f;
// Use this for initialization
void Start () {
isBallAtGOALIE = false;
}
// Update is called once per frame
void Update () {
isBallAtGOALIE = Physics.CheckSphere(goalieCollider.position, ballDistance, ballMaskLM);
if (isBallAtGOALIE == true)
{
print("ball collided with goalie!");
}
}
}
我尝试获取球的 X 轴和 Z 轴并检查它是否等于守门员的位置。但我想让它检测距离,但效率很低。 (也没有成功)
如果您尝试检查某物是否与碰撞体发生碰撞,您应该首先确保其中一个碰撞体具有刚体。其次,您应该使用统一定义的“OnCollisionEnter”和“OnCollisionExit”空隙。并且您应该确保碰撞器组件是在 OnCollisionEnter 和 Exit void 所在的同一脚本中创建的。您可以在此处的文档中找到有关它们的更多信息OnCollisionEnter unity doc