【发布时间】:2014-09-04 17:36:39
【问题描述】:
在使用 C# 编写脚本时,我还是个新手,而且我已经被这个问题困扰了好几天了。我制作了这个脚本,以便我的汽车可以在地图上移动,并且车轮在 Z 轴上旋转。脚本:
using UnityEngine;
using System.Collections;
public class CarMovement : MonoBehaviour
{
public Transform wheelFLTrans;
public Transform wheelFRTrans;
public Transform wheelBRTrans;
public Transform wheelBLTrans;
public float MotorForce;
public float Steerforce;
public WheelCollider GumaPD;
public WheelCollider GumaPLj;
public WheelCollider GumaZD;
public WheelCollider GumaZLJ;
void Start()
{
}
// Update is called once per frame
void Update()
{
float v = Input.GetAxis("Vertical") * MotorForce;
float h = Input.GetAxis("Horizontal") * Steerforce;
GumaPD.motorTorque = v;
GumaPLj.motorTorque = v;
GumaPD.steerAngle = h;
GumaPLj.steerAngle = h;
wheelFLTrans.Rotate(Vector3.forward * GumaPLj.rpm * 2 * Mathf.PI / 60.0f * Time.deltaTime * Mathf.Rad2Deg);
wheelFRTrans.Rotate(Vector3.forward * GumaPD.rpm * 2 * Mathf.PI / 60.0f * Time.deltaTime * Mathf.Rad2Deg);
wheelBRTrans.Rotate(Vector3.forward * GumaZD.rpm * 2 * Mathf.PI / 60.0f * Time.deltaTime * Mathf.Rad2Deg);
wheelBLTrans.Rotate(Vector3.forward * GumaZLJ.rpm * 2 * Mathf.PI / 60.0f * Time.deltaTime * Mathf.Rad2Deg);
wheelFRTrans.eulerAngles = new Vector3(0f, Input.GetAxis("Horizontal"), 0f);
}
}
现在我的问题是:
我想在驾驶汽车通过地图时添加车轮转向功能。就像当我按下 A 或 D 键时,轮子会根据我按下的键(A 或 D)转向方向。我试过这行代码:
**wheelFRTrans.localEulerAngles = new Vector3(0, wheelFR.steerAngle, 0);**
这可行,但是由于某种原因我的前轮停止旋转:(。有人可以帮我解决这个问题吗,我已经被这个问题困扰了好几天了:(。我希望我的轮子可以旋转和转向同时:/。
对不起,我的英语不好。
谢谢!
【问题讨论】:
标签: c# unity3d monodevelop