gpt4 book ai didi

c# - Unity 2D 地面碰撞器工作,但 OnTriggerEnter2D 未检测到

转载 作者:行者123 更新时间:2023-11-30 14:21:22 25 4
gpt4 key购买 nike

<分区>

我正在制作我的第一个 Unity 平台游戏,我突然想到我从来没有阻止我的玩家无限跳跃。我尝试了使用 bool 值的典型解决方案,该值通过跳跃和与地面碰撞来切换。问题是即使我的播放器确实与地面发生碰撞,但 OnTriggerEnter2D 似乎没有检测到它。

是的,我已经三次检查地面是否有正确的标签。

我尝试使用 raycaster 解决方案,但它似乎也不起作用。我让代码打印出它碰撞的任何物体的标签,所以我知道它根本没有检测到地面。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{

//movement variables
public float movex;
public float speed;
public float jumpforce;

//interactivity variables
public Rigidbody2D rb2d;

private bool isJumping;

Vector3 startingPosition;

// Use this for initialization
void Start()
{
rb2d = GetComponent<Rigidbody2D>();
startingPosition = transform.position;
}

// Update is called once per frame
void Update()
{
// localScale;
if (Input.GetKeyDown(KeyCode.Space) && !isJumping)
{
rb2d.velocity = new Vector2(rb2d.velocity.x, jumpforce);
isJumping = true;
}

}

void OnTriggerEnter2D(Collider2D col)
{
Debug.Log(col.tag);

if (col.gameObject.CompareTag("Floor"))
{
isJumping = false
}
}
}

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com