【发布时间】:2017-05-11 19:12:36
【问题描述】:
我最近在做一个项目,有一个场景,有山有林有车。
当汽车在地形上移动时,汽车穿透地形
我只想知道如何阻止这种情况发生。
车上有Mesh Collider,并附上RigidBody
地形上有Mesh Collider,凸为False。
public class Motor : MonoBehaviour {
public float moveSpeed = 5.0f;
public float drag = 0.5f;
public float terminalRoatationSpeed = 25.0f;
public Virtualjoystick moveJoystick;
private Rigidbody controller;
private Transform camTransform;
// Use this for initialization
void Start () {
controller = GetComponent<Rigidbody> ();
controller.maxAngularVelocity = terminalRoatationSpeed;
controller.drag = drag;
camTransform = Camera.main.transform;
}
// Update is called once per frame
void FixedUpdate () {
Vector3 dir = Vector3.zero;
dir.x = Input.GetAxis ("Horizontal");
dir.z = Input.GetAxis ("Vertical");
if(dir.magnitude > 1)dir.Normalize();
if(moveJoystick.InputDirection != Vector3.zero)
{
dir = moveJoystick.InputDirection;
}
// Rotate our Direction vector with Camera
Vector3 rotatedDir = camTransform.TransformDirection(dir);
rotatedDir = new Vector3 (rotatedDir.x, 0, rotatedDir.z);
rotatedDir = rotatedDir.normalized * dir.magnitude;
controller.AddForce (rotatedDir * moveSpeed);
}
}
【问题讨论】:
-
为您的问题添加更多信息。你如何移动汽车......代码?您是否在汽车上安装了对撞机?这种情况是每次还是有时都会发生?
-
添加
RigidBodys 并确保他们都没有设置IsTrigger选项。 -
@TamásSzabó 我做到了......它没有工作,但汽车仍在穿过地形
-
正如@Programmer 所说,你如何移动你的车?您(我假设) CarController 脚本的片段可以帮助我们很多。只需编辑您的问题并包含代码即可。
-
@TamásSzabó 我刚刚包含了写在车上的代码