Unity
やること EventSystemを参照してマウスが指示している位置に重なっているUIオブジェクトを取得します! 取得するオブジェクトは、EventSystemのInspecterの下部にあるWindowのpointerEnterでも確認できます。 手順 まずUnityEngine.EventSystemsをusingしま…
小一時間悩んだのでメモとして残します。 やりたいこと スクリプトからCanvas下に作ったImageの座標を任意の位置に変更する。 失敗例 以下のパターンだとずれました。 transform.position= new Vector2((100,100)); transform.localPosition= new Vector2((1…
はじめに 注意点 動作環境 制作フロー VideoLibraryをUnityに組み込む VideoLibraryを使って動画データの取得 各種パッケージ 動画情報取得からの動画取得 動画の再生 動画データの後始末 ゲームオブジェクトの設定 実行すると 終わりに はじめに Youtube、…
起こった問題 Unity実行中に、System.IO.Fileクラスで作成したファイル、フォルダや、その他方法で作成したデータをAssetフォルダ上に置いて使用するとします。ですが、Unityエディタ上ではすぐ認識されず、Unity側の認識を待たなければResources.Loadなどで…
そもそもGOTO文とは ラベルを記述した場所に処理を飛ばすことができる記法です。 例 private IEnumerator Start () { A: Debug.Log("ループするよ"); yield return new WaitForEndOfFrame(); goto A; } 上みたいなのだとwhile(true)と同じような動作をします…
無限にウィンドウが開いたり、ホラー画像がでかでかと出たり、明らかにいたずらで作ったwebページ。 うっかりリンクを踏んだら最後。 このwebページをブラクラ(ブラウザクラッシャー)といい、1990年代から、2000年代あたりに多くありました。(今もどこかにあ…
EditorWindowを作成してその中で音を出したい! コンポーネントを作るんじゃなく、直接呼び出したい! 調べました! AudioUtility 既につよいスクリプトを作っている人がいたので、これを利用して実装します。 このAudioUtility内のメソッドを使ってAulidcli…
リフレクションとは メタデータを見てみる まずはメタデータを取得する対象のクラスを定義します。 実際にメタデータを取得するスクリプトを書きます! ここでのポイント リフレクションをするために含めます。 「TestClass」クラスを取得します。 これらの…
フラグメントシェーダーとは 画面に投影される予定のピクセルの色データを加工するシェーダーです! 頂点シェーダーで加工したデータが別の工程を経た後、画面に投影される分のピクセルデータに変換されます。 そのピクセルデータを受け取り、再計算すること…
頂点シェーダーについて
カスタムコルーチンとは 自分で実装するコルーチンです! 作り方 分指定で待ってくれるコルーチンを作ります。 (1)クラスを定義 public class WaitForMinutes{ } (2)CustomYieldInstructionを継承 using UnityEngine; public class WaitForMinutes : CustomY…
Unityを使っているとき、ほぼ確実に使う「シーンファイル」。 拡張子は.unityで、シーンを保存すると作成されます。けどこれ何を保存してるんだろう・・・ シーンの情報が入っているんだろうけど・・・ ・・・気になったので調べました! 今回使用したUnity…
UnityとPythonをつなげてやりたいことがあります。 Pythonで機械学習して、Unityで作ったゲームの中で使う、そんな感じのことがしたいのです。 なのでまずはPythonをどうやって実行するか、というところが課題でした。 調べてみると案外あっさり見つかったの…
デリゲートとは メソッドへの参照 です! クラスみたいに参照して使えます。 書き方 自分でデリゲートを定義するやり方と、.NET Frameworkクラスライブラリに定義されてるAction、Funcを使うやりかたがあります。 自分で定義 delegateという修飾子を使うこと…
エディタ上で動くゲームをつくりました。かんたんなシューティングです。 ゲーム制作に疲れたときに遊べるのでおすすめです(?) youtu.be 制作のポイント Event.current OnGUIがどのイベントで呼ばれているか取得できる&キー入力などを検知できる EditorGUI.D…
Unityでエディタ拡張を作っていた時の話。 以下のようなエラーが出ました。ArgumentException: Getting control 1's position in a group with only 1 controls when doing repaint Abortingこのエラーは「OnGUI()の仕組み」が大きくかかわっていそうです。 …
少し苦労したのでメモ書き。 GUILayout.Spaceを使って位置を中心にずらします。 さらにGUIStyleを設定してalignmentを中心にずらします。 void OnGUI(){ GUILayout.Space(position.size.y / 2); GUIStyle myStyle = new GUIStyle(); myStyle.alignment = Tex…
HierarcyビューやInspectorビューなどのことを、EditorWindowと言います。 EditorWindowは自分で作ることができ、その中にいろんな機能を作ることができます。 つくりかた EditorWIndowクラスを継承したクラスを作成します。 EditorWIndowクラスを使うために…
C#には例外処理があらかじめ色々定義されています。なんとかExceptionとか、ほにゃららExceptionとか。 特定のシチュエーションでの例外を自分で定義したい!となった時のために例外クラスの自作について調べました。 以下のコードではボールオブジェクトの…
はじめに みなさんは、「地球解放軍ジアース」というゲームをご存知でしょうか? ゲームボーイの残像を利用して二重スクロールを作ったゲームとして有名です。 でも、あくまでゲームボーイの特性を利用したものなので、「地球解放軍ジアース」はスーパーゲー…
ちょっとしたメモ CubeやSphereのマテリアルの色はスクリプトから変更できます。 Block.cs using UnityEngine; public class Block : MonoBehaviour { private Material material; private void Init () { material = GetComponent<Renderer>().material; } private vo</renderer>…
UnityにInvokeというおもしろそうな関数がありました。 .netのControl.Invokeとは別物です。 Invokeとは 関数の実行タイミングを遅らせることができます。 Invoke(関数の名前,実行するタイミング); 実装してみた youtu.be世紀末にいそうな人が一定の間隔で地…
前回 tofgame.hatenablog.com 今回やること テストケースをScriptableObjectで作ります。 まずScriptableObjectを作成します。 TestCase_Move.cs using UnityEngine; [CreateAssetMenu(menuName ="TestCase/Move")] public class TestCase_Move : Scriptable…
ScriptableObjectの作り方について備忘録。まずScriptableObjectを継承したクラスを作ります。 [CreateAssetMenu]を付与してエディタ上でScriptableObjectを作成できるようにします。 BallData.cs using UnityEngine; [CreateAssetMenu(menuName ="Scriptabl…
前回 tofgame.hatenablog.com今回は実際にどういう風に運用するのがいいのかを考えてみます。変数として以下のものを使います。 private Vector2Int pos = new Vector2Int(0,0); private float moveY = 1; private int fieldSize = 10; テストを行うために初…
使用したバージョン 2018.3.7f1 概要 Unityでテストコードを作ってみます docs.unity3d.com 手順 1 テストフォルダ、ファイルを作るこのとき、NUnit等を使用するためのアセンブリファイルが作成されます。2 テストスクリプトを作るデフォルトのスクリプトが…
コルーチンの中で入力待ちをしたいと思ったので調べました。 (1)WaitUntil 条件が一致するときに待機を抜ける便利なやつです。 docs.unity3d.com 例えば、下記のように扱います。 IEnumerator WaitUntilTest () { yield return new WaitUntil(() => { return…
Unityでのセーブロードの話 今まではcsvファイルにデータを読み書きしていました。 でもcsvだとなんか重い・・・? というわけで、Jsonファイルに読み書きをしようと思い試してみました。 DataManager.cs using System.Collections.Generic; using UnityEngi…
UnityでAndroid向けにビルドしたら・・・ keystoreファイルを作成しビルド、作成したapkファイルを自分のandroid端末にインストールしたところ、 「アプリはインストールされていません。」 と表示されアプリのインストールに失敗しました。 解決策 僕の場合…