【发布时间】:2018-12-23 12:53:05
【问题描述】:
为什么这两个相同的对象表现出不同的行为?
对象:
one: 父Sphere1(刚体使用重力)
-child Cube1
two: 父 Cube2(刚体使用重力)
-child Sphere2
在这种情况下,我认为他们的质心是相同的位置。
但是对象one 是稳定的,另一方面two 是不稳定的(向下滚动)。
这个问题解决了
这个问题是由脚本附加的父对象引起的。
说实话,我已经将质心脚本附加到两个父对象。这个脚本将质心设置在附加这个对象的中心,而不是两个对象的中心。删除脚本后,两个对象都掉了下来。
using UnityEngine;
using System.Collections;
public class centerOfMass : MonoBehaviour
{
Vector3 center;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
center = rb.centerOfMass;
}
void Update()
{
Debug.DrawLine(transform.position, transform.position + transform.rotation * center);
}
void OnDrawGizmos()
{
rb = GetComponent<Rigidbody>();
center = rb.centerOfMass;
Gizmos.color = Color.red;
Gizmos.DrawSphere(transform.position + transform.rotation * center, 0.08f);
}
}
【问题讨论】:
-
如果不是太麻烦,您能否在检查器中包含一个组件屏幕,以便我们可以安全地假设您已正确设置它?
-
@Maakep 谢谢你的建议。对不起大家,这个问题是由于设置重心脚本附加父母造成的。
-
如果您想添加内容,请编辑原始帖子! :) 代码在 cmets 中很难阅读。另外,要非常清楚你想要实现的目标和正在做的事情。
标签: c# unity3d rigid-bodies