我有一个玩家角色,由一些立方体,球体和一个胶囊组成。我创建了空对象Player
,玩家的所有身体部位都是Player
的孩子。我有两架飞机,中间有一个移动平台。我可以在正常的飞机和墙壁上行走和跳跃,但是当玩家在移动平台上时,玩家的身体部分会分崩离析。也许这是非常愚蠢的事情,但我刚开始使用Unity。
出现问题,玩家在移动平台上崩溃:http://nl.tinypic.com/r/207s3sz/9
以下有关概述,玩家,身体部位以及具有相应角色持有者的移动平台的信息。所有正文部分都与屏幕截图中的body
部分具有相同的属性。任何人都可以帮我解决这里出了什么问题吗?如何通过移动平台运送整个玩家?
HoldCharacter脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HoldCharacter : MonoBehaviour {
void OnTriggerEnter(Collider other) {
other.transform.parent = gameObject.transform;
}
void OnTriggerExit(Collider other)
{
other.transform.parent = null;
}
}
答案 0 :(得分:2)
您只需要禁用isTrigger
标志即可。以下是一些见解
所以触发器的工作方式是......它会触发OnTriggerExit
和OnTriggerEnter
,但它会让对象通过它。如果您停用IsTrigger
,则需要将OnCollisionEnter
方法的逻辑移至OnCollisionExit
。如果isTrigger取消选中工作,可能只是将HoldCharacter的逻辑分别移动到OnCollisionEnter
和OnCollisionEnd
这样的事实:
void OnCollisionEnter(Collision collisionInfo) {
collisionInfo.gameObject.transform.parent = gameObject.transform;
}
void OnCollisionExit(Collision collisionInfo) {
collisionInfo.gameObject.transform.parent = null;
}
此致
答案 1 :(得分:0)
如果我是正确的,那么使用Rigidbodys的物体的孩子也有物理学。也许把刚性的人放在玩家的孩子身上,就像这样。
播放器 -头 -武器 -legs - 刚体的空洞游戏对象