Assets\CameraManager.cs(56,38): error CS1003: Syntax error, ',' expected
Assets\CameraManager.cs(60,10): error CS1003: Syntax error, ',' expected
Assets\CameraManager.cs(72,10): error CS1003: Syntax error, ',' expected
この三つのエラーが出てしまいました
指定された場所を見ても三か所とも , はついていますし、、、
Windows:Unity 2021.3.10f1 Personal <DX11>
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraManager : MonoBehaviour
{
public static CameraManager Instance { get; private set; }
/// <summary>現在のカメラ位置名</summary> public string CurrentPositionName { get; private set; } public GameObject ButtonLeft; public GameObject ButtonRight; public GameObject ButtonBack; /// <summary> /// カメラ位置情報クラス /// </summary> private class CameraPositionInfo { /// <summary>カメラの位置</summary> public Vector3 Position { get; set; } /// <summary>カメラの角度</summary> public Vector3 Rotate { get; set; } /// <summary>ボタンの移動先</summary> public MoveNames MoveNames { get; set; } } /// <summary> /// ボタン移動先クラス /// </summary> private class MoveNames { /// <summary>左ボタンを押したときの位置名</summary> public string Left { get; set; } /// <summary>右ボタンを押したときの位置名</summary> public string Right { get; set; } /// <summary>下ボタンを押したときの位置名</summary> public string Back { get; set; } } /// <summary> /// 全カメラ位置情報 /// </summary> private Dictionary<string, CameraPositionInfo> _CameraPositionInfoes = new Dictionary<string, CameraPositionInfo> { { "Door", //位置名 new CameraPositionInfo { Position = new Vector3(0,2,-3), Rotate = new Vector3(0,0,0), MoveNames = new MoveNames { Left = "RoomLeft", Right = "RoomRight", } } }, { "RoomLeft", //位置名 new CameraPositionInfo { Position = new Vector3(0,2,-3), Rotate = new Vector3(0,-33,0), MoveNames = new MoveNames { Right = "Door", } } }, { "RoomRight", //位置名 new CameraPositionInfo { Position = new Vector3(0,2,-3), Rotate = new Vector3(0,33,0), MoveNames = new MoveNames { Left = "Door", } } }, }; // Start is called before the first frame update void Start() { Instance = this; ChangeCameraPosition("Door"); ButtonBack.GetComponent<Button>().OnClick.AddListener(() => { ChangeCameraPosition(_CameraPositionInfoes[CurrentPositionName].MoveNames.Back); }); ButtonLeft.GetComponent<Button>().OnClick.AddListener(() => { ChangeCameraPosition(_CameraPositionInfoes[CurrentPositionName].MoveNames.Left); }); ButtonRight.GetComponent<Button>().OnClick.AddListener(() => { ChangeCameraPosition(_CameraPositionInfoes[CurrentPositionName].MoveNames.Right); }); } /// <summary> /// カメラ移動 /// </summary> /// <param name="positionName">カメラ位置名</param> public void ChangeCameraPosition(string positionName) { if (positionName == null) return; CurrentPositionName = positionName; GetComponent<Camera>().transform.position = _CameraPositionInfoes[CurrentPositionName].Position; GetComponent<Camera>().transform.rotation = Quaternion.Euler(_CameraPositionInfoes[CurrentPositionName].Rotate); } // Update is called once per frame void Update() { }
}
エラーが出ている行はどこですか?
コメントで示してください
(56,38)(60,10)(72,10)とかは56行目の38文字目って意味じゃないんですか?
すみませんほんとに初心者で、、、
コードの1行目から貼ってあるとも限らないので
56行目がコードのどこなのか質問文を読んでいる人にはわからないのです
そして仮にちゃんと1行目から貼ってあっても、いちいち56行も数えるのは大変なのです
{
"Door", //位置名
new CameraPositionInfo
{
Position = new Vector3(0,2,-3),
Rotate = new Vector3(0,0,0),
MoveNames = new MoveNames
{
Left = "RoomLeft", ←ここ(56,38)
Right = "RoomRight",
}
}
}, ←(60,10)
{
"RoomLeft", //位置名
new CameraPositionInfo
{
Position = new Vector3(0,2,-3),
Rotate = new Vector3(0,-33,0),
MoveNames = new MoveNames
{
Right = "Door",
}
}
}, ←(72,10)
{
"RoomRight", //位置名
new CameraPositionInfo
{
Position = new Vector3(0,2,-3),
Rotate = new Vector3(0,33,0),
MoveNames = new MoveNames
{
Left = "Door",
}
}
},
多分ここのことだろうと思いますけど、行増やしてもエラーの示すところが変わらなかったのでよくわかってないです、、、
行を増やしたというのは56行目より上に改行を入れたということですか?
変わらなかったというのは行数がそのまま、例えば56のままということですか?
はい、改行を入れても56も60も72も変わりませんでした
ファイルの先頭に明らかにエラーになる行を書いてみてちゃんとエラーになりますか?
hogeとか書いてみるとか
; を抜いてみるとか
