我的问题是,我的播放器(盒子)在跳跃并到达屋顶(真的是长矩形)时并没有附着。有一个地面(真的很长的矩形)和一个屋顶,并且玩家处于它们之间,并且有足够的跳跃空间以至于他到达了屋顶。有两个对撞机,其中一个是触发器,碰撞场略有扩展。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Platform_Attach_Script : MonoBehaviour
{
public GameObject Player;
Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void OnTriggerEnter2D(Collider2D other)
{
if (other.gameObject.tag == "Player")
{
Player.transform.parent = transform;
rb.mass = 0;
}
}
void OnTriggerExit2D(Collider2D other)
{
if (other.gameObject.tag == "Player")
{
Player.transform.parent = null;
}
}
}
此代码已在我以前工作过的项目中使用,但我一直在为当前项目进行调整。我试过改变玩家跳起并到达扳机的盒子对撞机时的重量,但是后来我意识到我只是在改变屋顶的重量,所以这就是为什么它掉落了几次,然后我尝试在Youtube和论坛上寻找如何从特定脚本调用Gameobject的函数,我什么都找不到。所以当时我以为我已经尝试了6个月,所以我想尝试做不可能的事情。
最重要的是,当我的玩家跳跃时,它意味着要固定在屋顶上;当它再次跳跃时,它是意味着回到地面上,并且有一个脚本可以使其不断移动。