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

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

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

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

Unity3D

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

Unity

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

Q&A

1回答

4634閲覧

unity cs0103,cs1061エラーの改善策(初心者)

noberon

総合スコア17

C#

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

Unity3D

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

Unity

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

0グッド

0クリップ

投稿2020/09/07 05:15

編集2020/09/08 03:33

Unity初心者です。
以下のエラーが出て困っているため有識者の方助けてください。
・error CS0103: The name 'CrossPlatformInputManager' does not exist in the current context
・error CS0103: The name 'Marthf' does not exist in the current context
・error CS1061: 'Quaternion' does not contain a definition for 'rotation' and no accessible extension method 'rotation' accepting a first argument of type 'Quaternion' could be found (are you missing a using directive or an assembly reference?)

対応コードはこちらです。

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class InputController : MonoBehaviour 6{ 7 // Start is called before the first frame update 8 //制御対象のキャラクターコントローラ 9 public CharacterController PlayerController; 10 11 public Camera MainCamera; 12 13 void Start() 14 { 15 this.MainCamera = Camera.main; 16 } 17 18 // Update is called once per frame 19 void Update() 20 { 21 if(this.PlayerController == null) 22 { 23 return; 24 } 25 26 //移動方向を決める 27 var dx = CrossPlatformInputManager.GetAxis("Horizontal"); 28 var dz = CrossPlatformInputManager.GetAxis("Vartical"); 29 if(Mathf.Abs(dx) + Mathf.abs(dz) <= 0) 30 { 31 return; 32 } 33 this.PlayerController.transform.rotation = Quaternion.Euler(0,-Mathf.Atan2(dz,dx)*Mathf.Rad2Deg - this.MainCamera.transform.rotation.rotation.eulerAngles.y,0); 34 35 //単純移動 36 this.PlayerController.SimpleMove(this.PlayerController.transform.forward * new Vector3(dx,0,dz).magnitude*0.5f); 37 38 } 39}

Unity上で3D猫を動かしたくてこのサイト(https://www.matatabi-ux.com/entry/2015/12/31/100000)を参考にコードをコピペしたのでスペルミスとかではないと思います。
考えられる理由としては、この記事が2015年のもので私は最新の2020verを使用しているため、エラーが出ていると考えられます。
また、自分でもエラー原因を調べてみたところ、CrossPlatformInputManagerが必要であると言うことが分かったのでinportしましたが以前エラーは改善されません。助けてください。

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

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

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

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

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

guest

回答1

0

CrossPlatformInputManagerはStandard Assetsに含まれているものですが暫く更新されていないのですべてをインポートするとエラーが出るかもしれません。その場合は不要なものを削除してください。

Standard Assets (for Unity 2018.4)

MarthfMathfのスペルミスなのでrを消せばエラー解消されます。

Quaternionは以下の行でrotationが二重のrotation.rotationになっているためです。

cs

1this.PlayerController.transform.rotation = Quaternion.Euler(0,-Mathf.Atan2(dz,dx)*Mathf.Rad2Deg - this.MainCamera.transform.rotation.rotation.eulerAngles.y,0);

エラーメッセージはGoogle翻訳やDeepLなどである程度読める日本語に翻訳できるのでエラーメッセージから原因を類推する事をおすすめします。

投稿2020/09/07 05:22

編集2020/09/10 13:06
shiena

総合スコア1827

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

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

noberon

2020/09/08 02:55

ありがとうございます。添付されたサイトをもとにいくつか消してみます。 スペルミス申し訳ございません!!!
noberon

2020/09/09 10:53

サイトを見てみたのですが、不要なものが分かりません。。。何か参考になるサイトや知識はありませんか?
shiena

2020/09/09 11:07

アセットをインポートしてコンソールにエラーが出たらそのスクリプトを削除するだけですよ
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問