c# - 我的问题是我的玩家在跳跃时没有附着在屋顶上
问题描述
我的问题是我的播放器(盒子)在跳跃并到达屋顶(真的很长的矩形)时没有附着自己。有一个地面(非常长的矩形)和一个屋顶,玩家在它们之间,有足够的空间跳跃,他可以到达屋顶。有两个盒子碰撞器,其中一个是触发器,碰撞场稍微扩大。
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++ - 有没有办法在一行中填充矢量地图
- c++ - 我正在尝试解决UVA在线法官中的12503问题。我认为他们在使用 string::back() 时有问题
- heroku - 如何在 Heroku 中更新单个文件而不破坏应用程序的数据
- elasticsearch - ElasticSearch 和缓存之间的根本区别是什么?
- javascript - 输入字段的方程
- makefile - 压缩linux内核rpm包中的所有文件
- c++ - C++中RAM的运行时内存管理
- excel - 根据“n”显示/隐藏行数
- swift - 有没有一种方法可以在“tableView”函数中使用“func startObservingDB()”中的“数据”、“值”和“rowNumber”常量?
- c# - 如何在 Unity 中将对象转换为变换?