Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从平均值获取相机位置_C#_Unity3d - Fatal编程技术网

C# 从平均值获取相机位置

C# 从平均值获取相机位置,c#,unity3d,C#,Unity3d,我试着让一个摄像头围绕一组球体(每个玩家都可以通过“垂直”和“水平”来控制)。我试着使用球体中的相同代码来移动摄像头(进行一些调整)。我知道需要移除rb,因为摄像头不是刚体,我只是不知道如何操作 using UnityEngine; using System.Collections; public class CameraController : MonoBehaviour { public float speed; private Rigidbody rb; void FixedUpd

我试着让一个摄像头围绕一组球体(每个玩家都可以通过“垂直”和“水平”来控制)。我试着使用球体中的相同代码来移动摄像头(进行一些调整)。我知道需要移除rb,因为摄像头不是刚体,我只是不知道如何操作

using UnityEngine;
using System.Collections;

public class CameraController : MonoBehaviour
{

public float speed;

private Rigidbody rb;

void FixedUpdate()
{
    float moveHorizontal = Input.GetAxis("Horizontal");
    float moveHorizontal2 = Input.GetAxis("Horizontal2");
    float moveHorizontal3 = Input.GetAxis("Horizontal3");
    float moveHorizontal4 = Input.GetAxis("Horizontal4");
    float moveVertical = Input.GetAxis("Vertical");
    float moveVertical2 = Input.GetAxis("Vertical2");
    float moveVertical3 = Input.GetAxis("Vertical3");
    float moveVertical4 = Input.GetAxis("Vertical4");

    Vector3 movement = new Vector3(((moveHorizontal+moveHorizontal2+moveHorizontal3+moveHorizontal4)/4), 0.0f, ((moveVertical+moveVertical2+moveVertical3+moveVertical4)/4));

    rb.AddForce(movement * speed);
}
}

我不完全确定这个问题是什么。根据标题,我建议你查找向量的平均值

如果我有水平向量和垂直向量:例如这两个

3, 3
3, 3
平均值的计算方法与任何整数的计算方法相同

 3   3
+3   3

=6   6
然后除以总计数(2)

平均是3,3

如果我有

  1, 4
  2, 7
 -5, 33
  5, 4
= 3, 48

Divide by 4:
0.75 (depends on accuracy, round to 1?)

1, 12
这应该会给你一个向量,在你手头的向量的“中间”周围。

如果你有三个(比如)位置,它们都是向量3。要找到中间,你只需这样做
Vector3 middle=(a+b+c)/3f;