Unity3D播放器相机错误cs0119

时间:2013-08-30 03:45:30

标签: c# vector unity3d

我正在尝试用C#编写一个基本脚本,让我的相机在他们四处走动时跟随我的播放器。我正在按照here列出的第3个相机教程。代码全部是用javascript编写的,虽然很容易翻译,但我担心因为这个原因可能会遗漏一些东西。我收到以下错误:

  

PlayerCamera.cs(21,65):错误CS0119:表达式表示type', where a变量',value' or方法组'是预期的

引用这行代码:

newPosition += Quaternion.Euler(0, yAngle, 0) * Vector3(0.0f, distanceAbove, -distanceAway);

我已经尝试在线上新建Vector3并使用单独的变量在乘法之前存储所述Vector3,并且由于我在Unity中编程很新,所以我的想法已经用完了。任何和所有的帮助表示赞赏!

完整的参考代码:

using UnityEngine;
using System.Collections;

public class PlayerCamera : MonoBehaviour {

    public Transform player;
    public float smoothTime = 0.3f;
    public float distanceAbove = 3.0f;
    public float distanceAway = 5.0f;
    private float yVelocity = 0.0f;

    // Update is called once per frame
    void Update () {
        float yAngle = Mathf.SmoothDampAngle(transform.eulerAngles.y,
                                             player.eulerAngles.y,
                                             ref yVelocity,
                                             smoothTime);

        Vector3 newPosition = player.position;

        newPosition += Quaternion.Euler(0, yAngle, 0) * Vector3(0.0f, distanceAbove, -distanceAway);

        gameObject.transform.position = newPosition;
        gameObject.transform.LookAt(player);
    }
}

2 个答案:

答案 0 :(得分:1)

在C#结构中(在您的情况下为Vector3)必须使用new关键字进行初始化。

newPosition += Quaternion.Euler(0, yAngle, 0) * new Vector3(0.0f, distanceAbove, -distanceAway);

答案 1 :(得分:0)

我可能会误解,但如果你想让一个相机跟随你的控制器,为什么不把它作为一个儿童对象并把它放在你想要的位置呢?