0

C# で基本的なスクリプトを作成して、プレーヤーが歩き回っているときにカメラをプレーヤーに追従させようとしています。ここにリストされている 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);
    }
}
4

2 に答える 2

1

C#構造体(あなたの場合)では、キーワードVector3で初期化する必要があります。new

newPosition += Quaternion.Euler(0, yAngle, 0) * new Vector3(0.0f, distanceAbove, -distanceAway);
于 2013-08-30T03:53:12.703 に答える
0

誤解しているかもしれませんが、カメラをコントローラーに追従させたい場合は、それを子オブジェクトにして、必要な位置に配置してみませんか?

于 2013-08-30T07:38:03.893 に答える