【发布时间】:2020-08-06 12:32:31
【问题描述】:
这是我迄今为止尝试过的: 我创建了一个光线投射,如果它击中第 8 层(需要将对象发射到玩家的层)上的对象,我调用 SlerpToHand() 函数。
private void Update()
{
if(Physics.Raycast(transform.position, transform.forward * raycastLength, out hit))
{
if(hit.collider.gameObject.layer == 8)
{
// Launch object to player
SlerpToHand(hit.collider.transform);
}
}
}
在 SlerpToHand() 内部,我将对象的位置设置为 Vector3.Slerp(),该向量是根据命中对象中的值创建的。
private void SlerpToHand(Transform hitObj)
{
Vector3 hitObjVector = new Vector3(hitObj.transform.position.x, hitObj.transform.position.y, hitObj.transform.position.z);
hitObj.position = Vector3.Slerp(hitObjVector, transform.position, speed);
}
但这一切的结果都是错误的,物体只是被传送到了玩家的手中。 Vector3.Slerp() 不是向玩家弯曲对象的好方法吗?对于上下文,我正在尝试重新创建半条命:Alyx 的抓握手套。手势还有一些工作要做,但我只是想降低对象曲线。非常感谢您的帮助,如果需要更多信息,请告诉我。
【问题讨论】: