团结 - Parent 与 children 分崩离析

Unity - Parent with children fall apart

我有一个玩家角色,由一些立方体、球体和一个胶囊组成。我创建了空 object Player 并且播放器的所有 body 部分都是 child 的 Player。我有两架飞机,中间有一个移动平台。我可以在正常的平面和墙壁上行走和跳跃,但是当玩家在移动平台上时,玩家的 body 部分会分崩离析。也许这真的很愚蠢,但我刚开始使用 Unity。

这就是问题所在,玩家在移动平台上崩溃了:http://nl.tinypic.com/r/207s3sz/9

下面是关于概述、播放器、body 零件和移动平台的信息,并带有相应的 character-holder。所有 body 部分都与屏幕截图中的 body 部分具有相同的属性。谁能帮我解决这里的问题?如何用移动平台运送整个播放器?

保留字符脚本:

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;
    }
}

如果我是对的,children of objects with Rigidbodys 也有物理特性。也许把刚体放在玩家的 child 上,就像这样。

播放器 -头 -武器 -腿 - 带有刚体的空游戏对象

您只需禁用 isTrigger 标志。以下是一些见解

那么 Is Trigger 的工作原理是......它会触发 OnTriggerExitOnTriggerEnter,但它会让对象通过它。如果禁用 IsTrigger,则需要将逻辑移至 OnCollisionExit 方法上的 OnCollisionEnter。如果 isTrigger uncheck 有点奏效,可能只是将 HoldCharacter 的逻辑分别移动到 OnCollisionEnterOnCollisionEnd 就像这样:

void OnCollisionEnter(Collision collisionInfo) { 
   collisionInfo.gameObject.transform.parent = gameObject.transform; 
} 
void OnCollisionExit(Collision collisionInfo) {
    collisionInfo.gameObject.transform.parent = null; 
}

此致