团结 - 有孩子的父母分崩离析

时间:2017-09-13 21:19:18

标签: unity3d unity5 unity3d-editor

我有一个玩家角色,由一些立方体,球体和一个胶囊组成。我创建了空对象Player,玩家的所有身体部位都是Player的孩子。我有两架飞机,中间有一个移动平台。我可以在正常的飞机和墙壁上行走和跳跃,但是当玩家在移动平台上时,玩家的身体部分会分崩离析。也许这是非常愚蠢的事情,但我刚开始使用Unity。

出现问题,玩家在移动平台上崩溃:http://nl.tinypic.com/r/207s3sz/9

以下有关概述,玩家,身体部位以及具有相应角色持有者的移动平台的信息。所有正文部分都与屏幕截图中的body部分具有相同的属性。任何人都可以帮我解决这里出了什么问题吗?如何通过移动平台运送整个玩家?

enter image description here

enter image description here

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

2 个答案:

答案 0 :(得分:2)

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

所以触发器的工作方式是......它会触发OnTriggerExitOnTriggerEnter,但它会让对象通过它。如果您停用IsTrigger,则需要将OnCollisionEnter方法的逻辑移至OnCollisionExit。如果isTrigger取消选中工作,可能只是将HoldCharacter的逻辑分别移动到OnCollisionEnterOnCollisionEnd这样的事实:

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

此致

答案 1 :(得分:0)

如果我是正确的,那么使用Rigidbodys的物体的孩子也有物理学。也许把刚性的人放在玩家的孩子身上,就像这样。

播放器 -头 -武器 -legs - 刚体的空洞游戏对象