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

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

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

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

Q&A

解決済

1回答

4103閲覧

C# error CS1061で困っています。

arukeidesu

総合スコア1

Unity

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

0グッド

0クリップ

投稿2020/10/06 06:12

前提・実現したいこと

UnityでAR上にドローンの現在の位置姿勢を表すシステムを作っています。
x軸,y軸,z軸それぞれについてプログラムを作りましたがすべてエラーが発生しました。
以下にx軸に関して作ったプログラムのエラーを載せます。

発生している問題・エラーメッセージ

PosX.cs(26,31): error CS1061: 'Input' does not contain a definition for 'SendKey' and no accessible extension method 'SendKey' accepting a first argument of type 'Input' could be found (are you missing a using directive or an assembly reference?)

該当のソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using System; 5 6public class PosX : MonoBehaviour 7{ 8 //オブジェクトを作成 9 GameObject Position; 10 GameObject PosXText; 11 12 GameObject Key; 13 14 void Start() 15 { 16 //オブジェクトを指定 17 this.Position = GameObject.Find("Drone"); //目標値のオブジェクト 18 this.PosXText = GameObject.Find("PosX"); //X軸を表示するテキストのオブジェクト 19 20 this.Key = GameObject.Find("Input"); 21 } 22 23 void Update() 24 { 25 Input Ckey = Key.GetComponent<Input>(); 26 int ReceiveKey = Ckey.SendKey; 27 28 //X座標を取得 29 Vector3 PoP = this.Position.transform.position; 30 float PosX = PoP.x; 31 /* 32 //0.5ずつ表示 33 double Roundx = Math.Round(PosX * 10) / 10; 34 double Floorx = Math.Floor(Roundx / 0.5) * 0.5; 35 if (Roundx < Floorx) 36 { 37 Floorx += 0.5; 38 } 39 */ 40 41 42 //ONにすると座標変更 43 if (ReceiveKey == 1) 44 { 45 //Debug.Log("ON"); 46 this.PosXText.GetComponent<TextMesh>().text = "X軸 : " + PosX.ToString("F1");//小数第1位 47 this.gameObject.transform.localPosition = new Vector3(0.1f, 0f, 1f); 48 } 49 //OFFにすると元の位置に戻る 50 else if (ReceiveKey == 0) 51 { 52 //Debug.Log("OFF"); 53 this.PosXText.GetComponent<TextMesh>().text = "X軸 : " + PosX.ToString("F1");//小数第1位 54 this.gameObject.transform.localPosition = new Vector3(-0.25f, -0.16f, 1f); 55 } 56 57 } 58} 59

試したこと

ネットでerror CS1061について調べたのですが、書き間違えやあまり関係なさそうなものしか見つけることが出来ませんでした。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

ozwk

2020/10/06 06:29 編集

「InputにSendKeyは無いよ」というエラーです。 実際UnityEngine.InputにSendKeyなるものは存在しません。 このInputとSendKeyはなんですか? 自身で定義したものでしょうか?
arukeidesu

2020/10/06 07:13

回答ありがとうございます。Inputは定義した物です。Unityの内容を引継ぎで作業をしているためSendkeyに関しては正しい回答できませんが定義したものだと考えています。
guest

回答1

0

ベストアンサー

提示されていないためおそらくですが、Inputという名前のクラスを作成されていると思います。
しかし、その名前のクラスはすでにUnityEngineに存在しています。
そのため、「2つの内どちらを使えば分からない」もしくは「UnityEngine側が使われていて、SendKeyという名前がそちらに存在しない」のどちらかが原因でエラーになっていると思います。
どちらにせよ、Inputという名前を使うべきではないので、そのクラスの名前を変更してください。

投稿2020/10/06 06:47

fiveHundred

総合スコア10152

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

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

arukeidesu

2020/10/06 07:12

解答ありがとうございます。今年からC#、Unityを使い始めたためInput自体がUnityEngineに存在しているのは初めて知りました。クラス名を変更することで解決することが出来ました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問