質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

1回答

232閲覧

unity errorCS0246が解決できない

okayuuun

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2025/04/13 13:45

実現したいこと

error CS0246: The type or namespace name `________' Could not be found.
Are you missing a using directive of assembly reference?と出てくるのを解決したいです。

発生している問題・分からないこと

error CS0246: The type or namespace name InputSystem_Actions' Could not be found. Are you missing a using directive of assembly reference? error CS0246: The type or namespace name GameManagerScript' Could not be found.
Are you missing a using directive of assembly reference?の二つが出てきます。

エラーメッセージ

error

1error CS0246: The type or namespace name `InputSystem_Actions' Could not be found. 2Are you missing a using directive of assembly reference? 3error CS0246: The type or namespace name `GameManagerScript' Could not be found. 4Are you missing a using directive of assembly reference?

該当のソースコード

C++

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.InputSystem; 5 6public class PlayerController : MonoBehaviour 7{ 8 // 移動する方向のVector2 9 public Vector2 MoveVector; 10 11 //プレイヤーが動くかどうかのbool型変数 12 public bool IsMove; 13 14 //スティックの倒し具合に応じたスピードの数値 15 public float Speed; 16 17 //カメラが移動する方向のVector2 18 public Vector2 CameraMoveVector; 19 20 //カメラが動くかどうかのbool型変数 21 public bool IsCameraMove; 22 23 //PlayerPositionObjectの略 24 GameObject PlayerPos; 25 Animator anim; 26 Rigidbody Rbody; 27 28 //InputDSystemを変数として定義 29 InputSystem_Actions ISA; 30 public float JumpPower; 31 32 //ゲームマネージャー 33 public GameObject GameManager; 34 35 //ゲームマネージャーのコントローラー 36 public GameManagerScript GameManagerController; 37 38 //メンバ変数に追加 39 private float targetSpeed = 0f; 40 public AudioSource JumpAudio; 41 public AudioSource FootStepAudio; 42 public bool isGrounded = true; 43 private bool wasGrounded = true; //前フレームの地面状態 44 45 // Start is called before the first frame update 46 void Start() 47 { 48 //PlayerPositionObjectのを探す 49 PlayerPos = GameObject.Find("PlayerPositionObject"); 50 51 //アニメーターコンポーネントを取得 52 anim = GetComponent<Animator>(); 53 54 //Rigidbodyコンポーネントを取得 55 Rbody = GetComponent<Rigidbody>(); 56 57 //Input Systemのアクションマップ(ISA)を初期化(新しく作る) 58 ISA = new InputSystem_Actions(); 59 60 //入力を有効化(これをしないと操作が反応しない) 61 ISA.Enable(); 62 63 //ゲームマネージャーのGameManagerScriptを取得 64 GameManagerController = GameManager.GetComponent<GameManagerScript>(); 65 JumpAudio.volume = 0.3f; 66 } 67 68 // Update is called once per frame 69 void Update() 70 { 71 float smoothing = 10f; //スピード変化の滑らかさ(大きいほど素早く反映) 72 //現在のSpeedを、目標値に向かって徐々に近づける 73 Speed = Mathf.Lerp(Speed, targetSpeed, Time.deltaTime * smoothing); 74 75 //ごくわずかな差ならぴたっとスナップして振動を防ぐ 76 if (Mathf.Abs(Speed - targetSpeed) < 0.01f) 77 { 78 Speed = targetSpeed; 79 } 80 anim.SetFloat("VelocityY", Rbody.linearVelocity.y); 81 82 //キャラのすぐ下に光線を飛ばして地面に足がついているか判定 83 if (isGround) 84 { 85 //ジャンプ力がたまらないようにジャンプ前にRigidbodyの力をすべてゼロにする 86 Rbody.linearVelocity = Vector3.zero; 87 88 //上方向にddForceする 89 Rbody.AddForce(Vector3.up * JumpPower); 90 91 //前方向にddForceする 92 Rbody.AddForce(transform.forward * Speed * 800); 93 94 //ジャンプの音を再生 95 JumpAudio.Play(); 96 } 97 //アニメーションのジャンプパラメーターをファルスに 98 anim.SetBool("IsJump", false); 99 100 //もしプレイヤーが動くかどうかのbool型変数がtrueなら 101 if (IsMove && GameManagerController.IsMenu == false) 102 { 103 //プレイヤーの前方向にスピードを掛ける 104 if (Physics. Raycast (new Vector3(transform. position. x, transform. position. y + 1, 105 transform. position. z), transform. forward, 2) == false) 106 { 107 transform. position += transform. forward * Speed * 15 * Time. deltaTime; 108 } 109 //回転スピード(調整可能) 110 float rotationSpeed = 10f; 111 //入力方向を角度に変換 112 float targetYRotation = Mathf. Atan2 (MoveVector. x, MoveVector. y) 113 * Mathf. Rad2Deg + PlayerPos. transform. rotation. eulerAngles. y; 114 //目標の回転 115 Quaternion targetRotation = Quaternion. Euler(0, targetYRotation, 0) ; 116 //補間して回転(なめらかに) 117 transform. rotation = Quaternion. Lerp(transform. rotation, 118 targetRotation, rotationSpeed * Time. deltaTime) ; 119 //動くアニメーションパラメーター設定 120 anim. SetBool ("IsMove", true) ; 121 //アニメーション遷移速度を設定 122 anim. SetFloat ("MoveSpeed", Speed) ; 123 //足音のピッチを歩く、走る速度に合わせる 124 FootStepsAudio. pitch = Speed * 2 + 0.2f; 125 if (!FootStepsAudio. isPlaying) 126 { 127 //足音を再生 128 FootStepsAudio. Play (); 129 } 130 } 131 else 132 { 133 //アニメーションのジャンプパラメーターをトゥルーに 134 anim.SetBool("IsJump", true); 135 } 136 if (!isGrounded) 137 { 138 //足音を止める 139 FootStepsAudio.Stop(); 140 } 141 } 142 143 void FixedUpdate() 144 { 145 //地面チェック(簡易) 146 wasGrounded = isGrounded; 147 if (Mathf. Abs (Rbody. linearVelocity. y) < 30 && 148 Physics. Raycast (new Vector3(transform. position. x, transform. position. y + 1, 149 transform. position. z), Vector3. down, 2)) 150 { 151 isGrounded = true; 152 } 153 if (Mathf. Abs (Rbody. IinearVelocity. y) > 30) 154 { 155 isGrounded = false; 156 } 157 158 //着地検出:前フレームでは空中、今は地面に接触 159 if (!wasGrounded && isGrounded) 160 { 161 //ジャンプの音(着地にも同じ音を使用)を再生 162 JumpAudio. Play () ; 163 } 164 } 165 166 //プレイヤーが動くための入力(十字キー、WASDキー、左スティック)が押されたときの 167 //入力の方向を取得する関数 168 169 public void OnMove (InputAction. CallbackContext Context) 170 { 171 //入力された移動方向ベクトルを取得 172 MoveVector = Context. ReadValue<Vector2>(); 173 //入力が少しでもあれば移動状態にする 174 IsMove = Mathf. Abs (MoveVector. x) > 0.1f || Mathf. Abs (MoveVector. y) > 0.1f; 175 //入力の強さ(スティックの倒し具合) 176 float rawSpeed = MoveVector.magnitude; 177 // Proコンの最大スティック倒し量に合わせて補正 178 float maxStickValue = 0.7f; 179 //補正して0~1の範囲に正規化 180 targetSpeed = Mathf.Clamp01(rawSpeed / maxStickValue); 181 //ほぼ最大入力なら強制的に1にスナップして安定化 182 if (targetSpeed >= 0.92f) 183 { 184 targetSpeed = 1f; 185 } 186 } 187 //カメラが動くための入力(マウス、右スティック)が押された時の 188 //入力の方向を取得する関数 189 public void CameraMove(InputAction.CallbackContext Context) 190 { 191 //入力された動く方向のVector 192 CameraMoveVector = Context.ReadValue<Vector2>(); 193 //少しでもスティックが動いたらプレイヤーが動くかどうかのbool型変数をtrueにする 194 IsCameraMove = Mathf.Abs(Context.ReadValue<Vector2>().x) > 0.1 195 || Mathf.Abs(Context.ReadValue<Vector2>().y) > 0.1; 196 } 197} 198

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

解決方法がよくわからなかった

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fiveHundred

2025/04/14 02:47

参考にしたページのURLを記載してください。 「InputSystem_Actions」はともかく、「GameManagerScript」はUnityのデフォルトには存在しません。
guest

回答1

0

現状ではこのスクリプト単独では動作しません。
先ほど言った通り、「GameManagerScript」はデフォルトには存在しないので、それを作成するか、それに関係する処理を削除するかのどちらかです。
「InputSystem_Actions」もおそらく同様です。

投稿2025/04/14 03:42

fiveHundred

総合スコア10266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

okayuuun

2025/04/14 13:52

GameManagerScriptを作りましたが駄目でした。
okayuuun

2025/04/14 13:54

using UnityEngine; using UnityEngine.SceneManagement; using UnityEngine.EventSystems; public class GameManagerScript : MonoBehaviour { //InputDSystemを変数として定義 InputSystem_Actions ISA; public Game0bject BehindGradientImage; public Game0bject MenuUI; public Game0bject ControllerOperation; public GameObject ControllerImage; public Game0bject KeyboardImage; //public GameObject MaxCameraDistanceSlider; //public Game0bject LoadButton; //メニュー開いているか確かめるBool型変数 public bool IsMenu; //天気のマテリアル public Material ClearSky; public Material NightSky; public Material CloudSky; //太陽 public Light DirectionalLight; public Game0bject Rain; // Start is called before the first frame update void Start() { // Input Systemのアクションマップ(ISA)を初期化(新しく作る) ISA = new InputSystem_Actions (); //入力を有効化(これをしないと操作が反応しない) ISA. Enab le () ; IsMenu = false; ControllerImage.SetActive (true); KeyboardImage.SetActive (false); MenuUI.SetActive (false); //カーソルを中央に固定 Cursor. lockState = CursorLockMode. Locked; //カーソルを非表示 Cursor. visible = false; RenderSettings. skybox = ClearSky; Rain. SetActive (false); DirectionalLight. intensity = 2; RenderSettings. fog = true; RenderSettings. fogColor = new Color32(110, 139, 180, 255); RenderSettings. fogDensity = 0.0006f; } // Update is called once per frame void Update() { float mouseX = Input. GetAxis ("Mouse X"); float mouseY = Input. GetAxis ("Mouse Y"); if (ISA. Player. MenuButton. triggered) { if (IsMenu) { IsMenu = false; //メニューUIを非表示 MenuUI. SetActive (false); //カーソルを中央に固定 Cursor. lockState = CursorLockMode. Locked; //カーソルを非表示 Cursor. visible = false; } else { IsMenu = true; //メニューUIを表示 MenuUI. SetActive(true) ; EventSystem. current. SetSelectedGame0b ject (Control lerOperation); } } if ((mouseX != 0 || mouseY != 0) && IsMenu) { //カーソルを固定しない Cursor. lockState = CursorLockMode. None; //カーソルを表示 Cursor. visible = true; } } // 昼にする public void SetClearSky() { // もし夜なら if (RenderSettings. skybox = NightSky) { // 晴れてるとき if (Rain.active == false) { //晴れの昼にする RenderSettings. skybox = ClearSky; DirectionalLight. intensity = 2; RenderSettings. fogColor = new Color32(110, 139, 180, 255); RenderSettings. fogDensity = 0.0006f; } else // 晴れていないとき { //曇りの昼にする RenderSettings. skybox = CloudSky; DirectionalLight. intensity = 1; RenderSettings. fogColor = new Color32(164, 163, 162, 255); RenderSettings. fogDensity = 0.005f; } } } // 夜にする public void SetNightSky () { //スカイボックスを夜にする RenderSettings. skybox = NightSky; DirectionalLight. intensity = 0; //雨が降っているなら if (Rain.active == true) { //フォグを強めに RenderSettings. fogColor = new Color32(29, 36, 47, 255); RenderSettings. fogDensity = 0.005f; } else { //フォグを弱めに RenderSettings. fogColor = new Color32(29, 36, 47, 255); RenderSettings. fogDensity = 0.0006f; } } // 雨を降らす public void SetRainActive() { //雨を降らす Rain. SetActive (true); //昼なら if (RenderSettings. skybox != NightSky) { //曇りにする RenderSettings. skybox = CloudSky; DirectionalLight. intensity = 1; RenderSettings. fogColor = new Color32(164, 163, 162, 255); RenderSettings. fogDensity = 0.005f; } else { //夜の雨の天気にする RenderSettings. fogColor = new Color32(29, 36, 47, 255); RenderSettings. fogDensity = 0.005f; DirectionalLight. intensity = 0; } } // 雨をやませる public void SetRainStop() { //雨を止ませる Rain.SetActive (false); //もし昼の曇りなら if (RenderSettings. skybox = CloudSky) { //晴れにする RenderSettings. skybox = ClearSky; DirectionalLight. intensity = 2; RenderSettings. fogColor = new Color32(110, 139, 180, 255); RenderSettings. fogDensity = 0.0006f; } //もし夜なら if (RenderSettings. skybox == NightSky) { //夜の晴れにする RenderSettings. fogColor = new Color32(29, 36, 47, 255); RenderSettings. fogDensity = 0.0006f; } } // コントローラーの操作説明の画像表示関数 public void ControllerImageActive () { ControllerImage.SetActive (true); KeyboardImage.SetActive (false); } //キーボードの操作説明の画像表示関数 public void KeyboardImageActive () { ControllerImage.SetActive (false); KeyboardImage.SetActive (true); } //シーンをロードする public void SceneLoad () { SceneManager.LoadScene ("GameScene"); } //ゲームを終了するプログラム public void OnQuitButton() { #if UNITY_EDITOR UnityEditor.EditorApplication.isPlaying = false; #else Application.Quit(); #endif } } GameManagerScriptの内容です。
fiveHundred

2025/04/15 01:05 編集

これも「InputSystem_Actions」が含まれているので、対処しないとダメですね。 そもそも、「GameManagerScript」を使っているのは以下の一か所のみです(101行目) if (IsMove && GameManagerController.IsMenu == false) これは「メニューを開いているかどうか」の判定なので、「if (IsMove)」という具合に削除してしまっても問題なさそうに思えます(その場合はもちろん「GameManagerScript」は不要になります)。 また、「InputSystem_Actions」の処理もどのような意図で書かれているのか不明で、無くても動作するのであれば削除でよさそうな気もしますが、どうですか?
fiveHundred

2025/04/15 01:10

> また、「InputSystem_Actions」の処理もどのような意図で書かれているのか不明で、無くても動作するのであれば削除でよさそうな気もしますが、どうですか? ごめんなさい。上記は間違いです。 「InputSystem_Actions」を追加してください。
sheephuman

2025/04/15 01:22

要するに初心者によくある定義漏れかライブラリの入れ忘れですね。 InputSystem_Actions について検索したらあっさり出ました Input Actionsアセットというのがあるようです。 参考ブログ:https://soft-rime.com/post-20477/ 動画は割と学習コストがかかるんでおすすめできませんね。
okayuuun

2025/04/15 08:46

すみません。やはりInputSystem_Actionsの解決方法はわかりませんでした。 ほかにもGameManagerScript.csの(9,12),(10,12),(11,12),(13,12),(24,12)でerror CS0246: The type or namespace name GameManagerScript' Could not be found. Are you missing a using directive of assembly reference?が表示されるようになってしまいました。こちらも同じような原因なのでしょうか…
fiveHundred

2025/04/15 11:13

はい。他のスクリプトが足りません。 そもそもこのコードは全て丸写しするには向いてないと思います。 最初は空のスクリプトにしていき、動画のように必要に応じて付き足していくような方法がいいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問