团结 - 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 的工作原理是......它会触发 OnTriggerExit
和 OnTriggerEnter
,但它会让对象通过它。如果禁用 IsTrigger
,则需要将逻辑移至 OnCollisionExit
方法上的 OnCollisionEnter
。如果 isTrigger uncheck 有点奏效,可能只是将 HoldCharacter 的逻辑分别移动到 OnCollisionEnter
和 OnCollisionEnd
就像这样:
void OnCollisionEnter(Collision collisionInfo) {
collisionInfo.gameObject.transform.parent = gameObject.transform;
}
void OnCollisionExit(Collision collisionInfo) {
collisionInfo.gameObject.transform.parent = null;
}
此致
我有一个玩家角色,由一些立方体、球体和一个胶囊组成。我创建了空 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 的工作原理是......它会触发 OnTriggerExit
和 OnTriggerEnter
,但它会让对象通过它。如果禁用 IsTrigger
,则需要将逻辑移至 OnCollisionExit
方法上的 OnCollisionEnter
。如果 isTrigger uncheck 有点奏效,可能只是将 HoldCharacter 的逻辑分别移动到 OnCollisionEnter
和 OnCollisionEnd
就像这样:
void OnCollisionEnter(Collision collisionInfo) {
collisionInfo.gameObject.transform.parent = gameObject.transform;
}
void OnCollisionExit(Collision collisionInfo) {
collisionInfo.gameObject.transform.parent = null;
}
此致