Unity以多个范围为目标

时间:2017-06-12 13:43:20

标签: c# unity3d unity5

所以我想制作一个Aim Down Sight脚本,其中枪移动到相机的中心。目前,我正在使用Vector3.Lerp在我通过编辑器设置的“普通矢量”和“瞄准矢量”之间进行搜索。现在我有一个问题,我在游戏中有多个枪支附件,因此必须在屏幕中央的“点”会随着枪支的每个范围而改变,我真的不想设置一个针对枪支和范围的每种变化的新vector3。我尝试了很多东西,比如计算屏幕中心和示波器中间的距离,然后通过脚本在这个距离上创建一个新的vector3但没有按预期工作。你们有什么想法或建议如何使这个工作?

我真的很感谢每一个回复!

1 个答案:

答案 0 :(得分:0)

最简单的方法是为相机提供一系列位置,并跟踪当前的范围。

public Vector3[] scopePositions;
public int scopeID;

稍后,当您更改范围时,只需更改scopeID,当瞄准目标时,请按照以下方式使用:

Camera.main.transform.position = Vector3.Lerp(normalPosition, scopePositions[scopeID], time);

解决方案2 您可以像这样设置范围结构:

范围模型>与一些假的剧本的空的比赛对象。 如果你有这样的话,你可以在代码中轻松设置位置:

scopePosition = GetComponentInChildren<DummyComponent>().transform.position - Camera.main.transform.position;

或类似的东西。