【问题标题】:How can I add two Vector3's together in unity如何将两个 Vector3 加在一起
【发布时间】:2020-02-19 20:11:28
【问题描述】:

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

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

【问题讨论】:

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

标签: c# unity3d


【解决方案1】:

你必须创建 Vector3 的实例:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 2018-12-04
      相关资源
      最近更新 更多