2019-04-01から1ヶ月間の記事一覧
UnityとPythonをつなげてやりたいことがあります。 Pythonで機械学習して、Unityで作ったゲームの中で使う、そんな感じのことがしたいのです。 なのでまずはPythonをどうやって実行するか、というところが課題でした。 調べてみると案外あっさり見つかったの…
期待値とは 「起こることの数値」×「起こる確率」の合計です! 確率分布の真ん中がわかります。(外れ値がある場合感覚的に変な数値になる) 式 を確率変数、を確率関数、期待値を]とする。 期待値はのによる重み付き平均として定義する。 (1)確率変数が離散値…
デリゲートとは メソッドへの参照 です! クラスみたいに参照して使えます。 書き方 自分でデリゲートを定義するやり方と、.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クラスを使うために…
または、を考えたいとき、 ラグランジュ乗数を導入して、ラグランジュ関数 を定義する。(1)または、(2)が成立するが存在するとき、 が成立する。 rakuten_design="slide";rakuten_affiliateId="185a3da0.516b4bcf.185a3da1.562c24b0";rakuten_items="ctsmatc…
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…
はじめに コードを書いていると、どうしても条件が複雑になったりしますよね。 returnを利用してきれいにする流れを個人的にまとめてみました。 直したいコード private void Attack (int power) { if(waitTime == 0) { if(forwardEnemy) { forwardEnemy.Get…
前回 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…