繁体   English   中英

如何将两个 Vector3 统一添加在一起

[英]How can I add two Vector3's together in unity

我正在制作一个 2d 射击游戏。 当玩家游戏对象接触到玩家位置的枪时,我有一个“枪”的游戏对象。 但是,然后我想将枪从玩家精灵上的那个位置移动到精灵手上。 我认为最简单的方法是在起始向量上添加一个向量,以更改枪的坐标。 但是我不确定如何添加向量,这是我尝试过的,但出现了错误:“Vector3”不能用作方法。

Vector3 coords = GameObject.FindGameObjectWithTag("Gun").transform.position = GameObject.FindGameObjectWithTag("Player").transform.position;
Vector3 newcoords = coords + Vector3(1, 1, 0)

您必须创建 Vector3 的实例:

Vector3 newcoords = coords + new Vector3(1, 1, 0)

最简单的方法是(假设您的玩家被正确定义为树结构、头部、躯干、手等),是将手的局部位置分配给武器,或者甚至更好地将武器作为手的子节点。 因此,当您在手部、变形、旋转等方面进行任何更改时,您的武器会做出相应的反应。 只需在玩家的结构中找到“hand”,然后分配给“weapon.parent = hand”(当然这是伪代码,但你知道要点)。
当然,如果你的武器已经分配了一个世界的位置,在让它成为玩家手的孩子之后,你将不得不再次设置武器位置,相对于手的位置(你可以将它设置为 Vector3.zero 并看看你会得到结果)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM