【发布时间】:2018-04-12 23:31:29
【问题描述】:
当发射弹丸时,我执行
private Rigidbody rigid;
private Vector3 currentMovementDirection;
private void FixedUpdate()
{
rigid.velocity = currentMovementDirection;
}
public void InitProjectile(Vector3 startPosition, Quaternion startRotation)
{
transform.position = startPosition;
transform.rotation = startRotation;
currentMovementDirection = transform.forward;
}
我使用InitProjectile 作为我的Start 方法,因为我不销毁对象,我回收它并禁用渲染器。
当用射弹击中物体时,该射弹应该被反射。
我拍摄了一堵墙,这些墙多次反射物体
我认为 Unity 提供了一些东西
https://docs.unity3d.com/ScriptReference/Vector3.Reflect.html
碰撞触发时
private void OnTriggerEnter(Collider other)
{
if (other.gameObject == projectile)
{
projectileComponent.ReflectProjectile(); // reflect it
}
}
我想通过使用来反映它
public void ReflectProjectile()
{
// Vector3.Reflect(... , ...);
}
但是我必须使用什么作为 Reflect 的参数?看来我必须旋转弹丸才能改变它的运动方向。
【问题讨论】: