我在弄清楚这一点时遇到了一些麻烦。我想要实现的是一种应对运动。玩家从远处冲向目标。
该图显示了设置。蓝色菱形是玩家,红色是目标。紫色框是目标 SkinnedMeshRenderer 的渲染器边界。我正在使用渲染器边界,因为某些目标的网格比其他的大得多。目前,玩家正在向橙色星星射击……这是不现实的。我希望他,无论目标面对什么方向,始终瞄准目标相对于他的位置最近的点......在图表的情况下,这将是棕色星。这是我一直在使用的代码...
public IEnumerator Blitz()
{
rigidbody.velocity = Vector3.zero; //ZERO OUT THE RIGIDBODY VELOCITY TO GET READY FOR THE BLITZ
SkinnedMeshRenderer image = target.GetComponentInChildren<SkinnedMeshRenderer>();
Vector3 position = image.renderer.bounds.center + image.renderer.bounds.extents;
position.y = target.transform.position.y;
while(Vector3.Distance(transform.position, position) > 0.5f)
{
transform.position = Vector3.Lerp(transform.position, position, Time.deltaTime * 10);
yield return null;
}
Results(); //IRRELEVANT TO THIS PROBLEM. THIS CALCULATES DAMAGE.
Blitz.Stop(); //THE PARTICLE EFFECT ASSOCIATED WITH THE BLITZ.
GetComponent<Animator>().SetBool(moveName, false); //TRANSITIONS OUT OF THE BLITZ ANIMATION
GetComponent<Input>().NotAttacking(); //LET'S THE INPUT SCRIPT KNOW THE PLAYER CAN HAVE CONTROL BACK.
}