Unity3D播放器相机错误cs0119

本文关键字:cs0119 错误 相机 播放器 Unity3D | 更新日期: 2023-09-27 18:29:31

我正试图用C#编写一个基本脚本,让我的相机在玩家四处走动时跟随他们。我正在学习这里列出的第三个相机教程。代码都是用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);
    }
}

Unity3D播放器相机错误cs0119

在C#中,结构(在您的例子中是Vector3)必须使用new关键字初始化。

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

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