猫のオブジェクトをspaceを押した時にジャンプさせるために下のコードを作成し,コンパイルエラーなく実行できたのですがspaceを押してもジャンプせず、下のエラーコードが表示されます。
調べたこと エラーコードを検索にかけて、英語のものをGoogle翻訳しましたが翻訳内容の指示は理解できませんでした。
C#
1コード 2using System.Collections; 3using System.Collections.Generic; 4using UnityEngine; 5 6public class PlayerController : MonoBehaviour 7{ 8 Rigidbody2D rigid2D; 9 float jumpForce = 780.0f; 10 // Start is called before the first frame update 11 void Start() 12 { 13 this.rigid2D = GetComponent<Rigidbody2D>(); 14 15 } 16 17 // Update is called once per frame 18 void Update() 19 { 20 if(Input.GetKeyDown(KeyCode.Space)){ 21 this.rigid2D.AddForce(transform.up*this.jumpForce); 22 } 23 } 24} 25
エラーコード ArgumentException: Getting control 0's position in a group with only 0 controls when doing KeyDown Aborting UnityEngine.GUILayoutGroup.GetNext () (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/LayoutGroup.cs:122) UnityEngine.GUILayoutUtility.BeginLayoutGroup (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options, System.Type layoutType) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUILayoutUtility.cs:309) UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUIContent content, UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUILayout.cs:259) UnityEngine.GUILayout.BeginHorizontal (UnityEngine.GUIStyle style, UnityEngine.GUILayoutOption[] options) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUILayout.cs:251) UnityEditor.SceneView.DoToolbarGUI () (at /Users/builduser/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:1279) UnityEditor.SceneView.OnGUI () (at /Users/builduser/buildslave/unity/build/Editor/Mono/SceneView/SceneView.cs:2376) System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <fb001e01371b4adca20013e0ac763896>:0) Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation. System.Reflection.MonoMethod.Invoke (System.Object obj, System.Reflection.BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture) (at <fb001e01371b4adca20013e0ac763896>:0) System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters) (at <fb001e01371b4adca20013e0ac763896>:0) UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:381) UnityEditor.HostView.Invoke (System.String methodName) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:375) UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at /Users/builduser/buildslave/unity/build/Editor/Mono/HostView.cs:351) UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at /Users/builduser/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:406) UnityEditor.DockArea.OldOnGUI () (at /Users/builduser/buildslave/unity/build/Editor/Mono/GUI/DockArea.cs:395) UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:293) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:508) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:491) UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:484) UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:477) UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/IMGUIContainer.cs:449) UnityEngine.UIElements.EventDispatchUtilities.PropagateEvent (UnityEngine.UIElements.EventBase evt) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/Events/IEventDispatchingStrategy.cs:81) UnityEngine.UIElements.MouseEventDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/Events/MouseEventDispatchingStrategy.cs:69) UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:310) UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:275) UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:238) UnityEngine.UIElements.EventDispatcher.OpenGate () (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:203) UnityEngine.UIElements.EventDispatcherGate.Dispose () (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:44) UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:301) UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/EventDispatcher.cs:159) UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/Panel.cs:257) UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.bindings.cs:404) UnityEngine.UIElements.UIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /Users/builduser/buildslave/unity/build/Modules/UIElements/UIElementsUtility.bindings.cs:194) UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at /Users/builduser/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:197)
>英語のものしか出てこず、理解できませんでした
それは単に英語だから最初から読まなかったのか、Google翻訳にかけても分からなかったのか、どちらでしょうか。質問本文にきちんと「調べたこと試したこと」を具体的に記載してください。
あと、コードやエラーはマークダウンのcode機能にてご提示ください。
マークダウンのcodeがうまくいかない方は下記参考に。
https://teratail.com/questions/238564
ご指摘ありがとうございます。
確かにgoogle翻訳にはかけていませんでした。教えていただく側として最低限やるべきこともやらずに質問して申し訳ありませんでした。
また、マークダウンで記述しました。まだ至らぬ点があると思いますが、ご指摘していただけると幸いです。
エラーの方もマークダウンのcodeでお願いします。
```
```
バッククォート1つだけ使う場合は1行のコードとかコード内引用とかが適当です。複数行は3つで。
https://teratail.com/help
Unityに詳しいわけではないですが、
1行目の:Getting control 0's position in a group with only 0 controls when doing KeyDown
これだけでも結構なヒントになりそうですが、そうでもないですか?
https://qiita.com/cannorin/items/eb062aae88bfe2ad6fe5
エラーコード訂正しました。
グーグル翻訳で1行目のエラーコードと英語の同じような質問がされていたサイトを翻訳したところ
エラーコードの翻訳:KeyDownを実行するときにコントロールが0しかないグループでコントロール0の位置を取得する
英語の回答の翻訳:実際のイベントが処理されるとき、OnGUIがLayoutイベントが呼び出されたときと同じ内容であることが重要です。そのため、GUIの状態を変更するロジックをOnGUI内に配置しないでください。 OnGUIに配置する場合は、ラップしてください
と翻訳されコントロールを調べたところGUIについて出てきたためGUIに問題がありそうというところまではわかりましたが、どうすれば良いのか見当がつかないです。
「コントロールが0しかない」だから、操作しようとしているコントロールがそもそも設置されてないとかでは?
なるほど!スクリプトをアタッチするのを忘れていました、おかげさまで解決しました。
質問の仕方についても丁寧に教えていただきありがとうございました。
以後気をつけます
エラーの読み方も覚えると良いと思います。(プログラミングでは必須)
https://qiita.com/cannorin/items/eb062aae88bfe2ad6fe5
ひとまず、自己解決としては。
https://teratail.com/help #質問をした後に自己解決してしまった
1から10までありがとうございます。
以後エラーの読み方の勉強と質問する前に検索は徹底するようにします。
せめての気持ちとしてベストアンサーにさせていただきたいのですがいかがでしょうか?
なるほど。了解です。
では簡単ですが回答におこしてみようと思います。
回答1件
あなたの回答
tips
プレビュー