首页 > 解决方案 > 我的问题是我的玩家在跳跃时没有附着在屋顶上

问题描述

我的问题是我的播放器(盒子)在跳跃并到达屋顶(真的很长的矩形)时没有附着自己。有一个地面(非常长的矩形)和一个屋顶,玩家在它们之间,有足够的空间跳跃,他可以到达屋顶。有两个盒子碰撞器,其中一个是触发器,碰撞场稍微扩大。

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 和论坛上查找如何从特定脚本调用游戏对象的函数我找不到任何东西。所以后来我想我正在尝试做不可能的事情,因为我已经编码 6 个月了。

所以最重要的是,当我的玩家跳跃时,它意味着附着在屋顶上,而当它再次跳跃时,它意味着跳回地面,并且有一个脚本让它不断移动。

标签: c#unity3d

解决方案


推荐阅读