20210913のUnityに関する記事は3件です。

Unity スクリプトからゲームオブジェクトとクラスの適用

1.適当にクラスを用意する。 public class InpGameObject : MonoBehaviour { public async Task<string> GetKey() { var ret=""; while (ret==""){ ret = Input.inputString; await Task.Delay(16); } return ret; } }//class 2.外からクラスを割り当てて呼び出す。(MonoBehaviourの無いクラスを想定) using System.Collections; using System.Collections.Generic; using UnityEngine; public class test : MonoBehaviour { // Start is called before the first frame update async void Start() { var o =new GameObject("_inp");//空のゲームオブジェクトを生成 o.AddComponent<InpGameObject>();//コンポーネントを割り当てる。 while(!Input.GetKeyDown(KeyCode.Space)){ var ret=await o.GetComponent<InpGameObject>().GetKey();//call Debug.Log(ret); await System.Threading.Tasks.Task.Delay(5); } } }
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Unity 独自の仮想キー

1.GameObjectのExtensionに。 public static async Task<string> GetVKey(this GameObject @this,int delaytime=1000/200){ ... } 2.リソースフォルダーに入れておくのみ。 //Assets/Resources/InputGetter.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using System.Threading.Tasks; public class InputGetter : MonoBehaviour { public Dictionary<string,KeyCode> keymap=new Dictionary<string, KeyCode>(){ {"<",KeyCode.A}, {">",KeyCode.D}, {"^",KeyCode.W}, {"V",KeyCode.S}, {"A",KeyCode.J}, {"B",KeyCode.K}, {"X",KeyCode.L}, {"Y",KeyCode.O}, {"L",KeyCode.U}, {"R",KeyCode.I}, {"S",KeyCode.Space}, {"P",KeyCode.Return}, }; [SerializeField] string vkey=""; public async Task<string> GetKey(int delaytime=1000/200){ vkey =""; while(vkey=="") await Task.Delay(delaytime); return vkey;//<>^V ABXYLR SP } void Update() { if(vkey=="") foreach (var k in keymap) if (Input.GetKeyDown(k.Value)) vkey = k.Key; } }//class public static class GameObjectInputExtension{ static GameObject getter; public static async Task<string> GetVKey(this GameObject @this,int delaytime=1000/200){ if(getter==null){ getter = new GameObject("InputGetter"); getter.AddComponent<InputGetter>(); } return await getter.GetComponent<InputGetter>().GetKey(delaytime); } }//class 3.適当なゲームオブジェクトから呼び出す。 async void Start() { Debug.Log(await gameObject.GetVKey()); }
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Unity】Unity始めてみた(エディタ編)

プロジェクトを作成する Unityを起動し、『プロジェクト』の『新規作成』から、プロジェクトを作成可能。 作成時に『テンプレート』(2D/3D/ARなど)と『設定』(プロジェクト名、保存先)をそれぞれ選択。 エディタを開く Unityエディタの画面構造はこんな感じ ① シーンビュー 作成しているゲーム世界に相互作用できるビュー 風景、キャラクター、カメラ、ライト、その他全ての種類のゲームオブジェクトを選択し配置する ② ゲームビュー ゲーム内のカメラから見た絵をレンダリングしているビュー ③ ゲームオブジェクト キャラクター、小道具、背景などを表すUnityの基礎となるオブジェクト 実際に機能を実装するComponentのコンテナのように扱える ④ ヒエラルキーウィンドウ 現在のシーンにおける各ゲームオブジェクトのリストが表示される デフォルトでは、オブジェクトは作成された順にリスト化される オブジェクトをドラッグすることで、順番を替えたり、親子オブジェクトを作成することが可能 ⑤ プロジェクトウィンドウ プロジェクトに属するアセットにアクセスし、管理することが出来るウィンドウ ⑥ インスペクタ 現在選択されているゲームオブジェクトに関する詳細な情報を表示する 表示される情報には、ゲームオブジェクトにアタッチされたコンポーネントやそのプロパティーなども含む ⑦ ツールバー エディタの各所に関連する7つの基本コントロールを含むバー 基本操作 回り込み: Option + 左クリック + ドラッグ ズームイン・ズームアウト: ホイールを前後に回転 視点の平行移動: ホイールを押し込む + ドラッグ 視点の注目: ヒエラルキーウィンドウでゲームオブジェクトをダブルクリック
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む