0

我有一个玩家角色,由一些立方体、球体和一个胶囊组成。我创建了空对象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;
    }
}
4

2 回答 2

2

您只需要禁用该isTrigger标志。这里有一些见解

所以 Is Trigger 的工作原理是......它会触发OnTriggerExitand OnTriggerEnter,但它会让对象通过它。如果禁用IsTrigger,则需要将逻辑移至OnCollisionEnteronOnCollisionExit方法。如果 isTrigger uncheck 有效,可能只是您将 HoldCharacter 的逻辑分别移动到OnCollisionEnterOnCollisionEnd像这样:

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

问候

于 2017-09-13T23:38:15.687 回答
0

如果我是正确的,具有刚体的对象的子对象也具有物理特性。也许将刚体放在玩家的孩子身上,就像这样。

玩家 -head -arms -legs - 带有刚体的空游戏对象

于 2017-09-13T21:32:59.043 回答