脚本上的 isKinematic 和 usegravity 奇怪行为
isKinematic and usegravity strange behaviour on script
我想让一个键落下并停在一个特定的点,我的键在一个父游戏对象内,我将一个脚本附加到那个父对象和一个刚体,其中我启用了重力并且 iskinematic 是 false,在脚本中当它到达 z 上的一个特定点,我想将重力设置为 false,将运动学设置为 true:
这是代码
using UnityEngine;
using System.Collections;
public class keyRotate : MonoBehaviour {
private Rigidbody rb;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody> ();
}
// Update is called once per frame
void Update () {
transform.Rotate (0f,0f, 90f * Time.deltaTime);
if (transform.position.y < -277f)
Debug.Log ("INNN");
//rb.useGravity = false;
//rb.isKinematic = true;
}
}
发生的奇怪事情是,当我用 rb 注释最后两行时,对象掉落并且 debug.log 显示,当我取消注释时对象停止掉落并且调试从不显示,在这种情况下调试显示的消息不应该是重力的默认值是真的它应该下降 :S
在您的 if 语句中添加方括号 { }。现在您只需使用 if 之后的下一行。
我想让一个键落下并停在一个特定的点,我的键在一个父游戏对象内,我将一个脚本附加到那个父对象和一个刚体,其中我启用了重力并且 iskinematic 是 false,在脚本中当它到达 z 上的一个特定点,我想将重力设置为 false,将运动学设置为 true: 这是代码
using UnityEngine;
using System.Collections;
public class keyRotate : MonoBehaviour {
private Rigidbody rb;
// Use this for initialization
void Start () {
rb = GetComponent<Rigidbody> ();
}
// Update is called once per frame
void Update () {
transform.Rotate (0f,0f, 90f * Time.deltaTime);
if (transform.position.y < -277f)
Debug.Log ("INNN");
//rb.useGravity = false;
//rb.isKinematic = true;
}
}
发生的奇怪事情是,当我用 rb 注释最后两行时,对象掉落并且 debug.log 显示,当我取消注释时对象停止掉落并且调试从不显示,在这种情况下调试显示的消息不应该是重力的默认值是真的它应该下降 :S
在您的 if 语句中添加方括号 { }。现在您只需使用 if 之后的下一行。