【发布时间】:2015-01-02 19:23:42
【问题描述】:
我正在 Unity3D 中开发一个斯诺克游戏项目。我已经达到了斯诺克物理的感觉。但是在进行旋转拍摄时,它正在做一些有线活动。我在某个方向上加力后增加了扭矩。谁能告诉我我到底错过了什么。
这是我的代码
using UnityEngine;
using System.Collections;
public class CueBall : MonoBehaviour {
private enum SPIN{ nospin, leftspin,rightspin,topspin,bottomspin};
private SPIN currentSpin = SPIN.topspin;
private float cueStrength = 1000.0f;
public Transform cueStick;
// Use this for initialization
void Start () {
rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
}
// Update is called once per frame
void FixedUpdate () {
if(Input.GetMouseButtonDown(0)){
gameObject.rigidbody.drag = 0.6f;
gameObject.rigidbody.mass = 1.2f;
gameObject.rigidbody.angularDrag = 1.5f;
switch(currentSpin){
case SPIN.topspin :
rigidbody.AddForceAtPosition(cueStick.forward * cueStrength,transform.position,ForceMode.Acceleration);
rigidbody.AddTorque(Vector3.back * cueStrength );
break;
case SPIN.bottomspin:
rigidbody.AddForceAtPosition(cueStick.forward * cueStrength,transform.position,ForceMode.Acceleration);
rigidbody.AddTorque(Vector3.forward * cueStrength );
break;
}
}
}
}
提前谢谢
【问题讨论】:
-
目前还不清楚问题出在哪里(“奇怪”可能意味着任何事情),恐怕仅用文字来描述可能很难甚至不可能。如果你能制作一个可能会有所帮助的视频。
标签: unity3d