所以我想做一个瞄准瞄准瞄准的脚本,枪移动到相机的中心。我现在用的是Vector 3。在一个“正常向量”和一个“瞄准向量”之间,我通过编辑器设置。现在我有一个问题,我有很多附件多枪在我的游戏中,所以“点”,其中必须在屏幕的中心变化与每个范围连接到枪,我真的不想建立一个新的vector 3的每一个变化的枪和范围。我尝试了很多方法,比如计算屏幕中心和瞄准镜中间的距离,然后通过脚本创建一个新的vector 3,但都没有达到预期的效果。你们有什么想法或建议如何让这个工作吗?我真的很感谢每一个回复!
4ioopgfo1#
最简单的方法是为相机设置一系列位置,并跟踪当前的范围。
public Vector3[] scopePositions; public int scopeID;
之后,当你改变瞄准镜时,只需改变scopeID,当瞄准镜向下时,像这样使用它:
scopeID
Camera.main.transform.position = Vector3.Lerp(normalPosition, scopePositions[scopeID], time);
解决方案2您可以像这样设置您的作用域结构:
作用域模型〉空的游戏对象与一些虚拟脚本。当你这样做的时候,你可以很容易地在代码中设置位置:
scopePosition = GetComponentInChildren<DummyComponent>().transform.position - Camera.main.transform.position;
或者类似的东西
zf9nrax12#
我不知道你现在是否还想知道如何做到这一点,但在我的情况下:
有了这三个信息,我可以将我的AimPostion的本地位置设置为:
x = 0(center x axis) y = - (scopeSocket.localPosition.y + aimCenter.transform.localPosition.y) z = whatever you want (me 0,58)
所以基本上我正在修改我的武器的父:枪(武器的中心位置)和瞄准镜之间的高度,以及瞄准镜插座和我的透镜之间的高度。我知道这个设置是非常精确的,但我希望它可以帮助别人。there you have it, just without the gunAimPosition parent
2条答案
按热度按时间4ioopgfo1#
最简单的方法是为相机设置一系列位置,并跟踪当前的范围。
之后,当你改变瞄准镜时,只需改变
scopeID
,当瞄准镜向下时,像这样使用它:解决方案2您可以像这样设置您的作用域结构:
作用域模型〉空的游戏对象与一些虚拟脚本。当你这样做的时候,你可以很容易地在代码中设置位置:
或者类似的东西
zf9nrax12#
我不知道你现在是否还想知道如何做到这一点,但在我的情况下:
有了这三个信息,我可以将我的AimPostion的本地位置设置为:
所以基本上我正在修改我的武器的父:
枪(武器的中心位置)和瞄准镜之间的高度,以及瞄准镜插座和我的透镜之间的高度。
我知道这个设置是非常精确的,但我希望它可以帮助别人。
there you have it, just without the gunAimPosition parent