MVCの基礎の"き"
MVCとは? MVC(Model View Controller モデル・ビュー・コントローラ)は、ユーザーインタフェースをもつアプリケーションソフトウェアを実装するためのデザインパターンである。 アプリケーションソフトウェアの内部データを、ユーザーが直接参照・編集する情報から分離する。そのためにアプリケーションソフトウェアを以下の3つの部分に分割する。 (wikipeiaより)...
View Article[Unity] partialを使ってコンフィグを分けてみる
※あくまで個人的にこう使うと便利かもレベルです。 (partialって何?ってのはここでは省きます。簡単に言えばクラスの定義を複数ファイルにまたいで行うことができるもの。) ゲーム内のコンフィグをまとめてみる Unityでゲームを作る上でファイルのパスやステータスなどの定数、PlayerPrefsのkeyなどの定数を定める静的クラスを作ると思います。...
View Article[WPF/xaml] xaml+C#で当番決めのためのルーレットを作る
もくじ →https://qiita.com/tera1707/items/4fda73d86eded283ec4f やりたいこと 週一回のミーティングの司会役を決めるためにルーレットを使っているが、なんとなくxamlでもできそうな気がしたので試しに作ってみたい。 イメージはシンプルにこんな感じ。 やり方 下記のようにしてやる。 キーワードは「StoryBoard」。...
View Articleリソースの音声データを再生する
音声データを再生したいが、waveファイルやmp3ファイルを別ファイルで配布しないでリソースで同梱して扱いたい。というのを叶える方法を調べてみた。 扱う音声データはwavとmp3(NAudioが扱えるものなら何でも良いはず) wavはPlaySoundを使用し、mp3はNAudioを使用した Visual Studio...
View Article[SerializeField]属性をプリプロセッサ(#if〜#endif)で括ったらどうなるのか
特に理由のない意地悪がUnity2019.2.2を襲う――!! using UnityEngine; public class IfDefIjiwaru : MonoBehaviour { #if PLATFORM_STANDALONE [SerializeField] private string Ijiwaru; #endif } 実験 まずは対象のプラットフォームで適当に値を入れてみます。...
View Article【Unity】uGUIのドロップダウンメニューをスクリプトから作る
Main.cs static Dropdown GenDropdown(RectTransform parent) { Dropdown dropdown = new GameObject("dropdown").AddComponent<Dropdown>(); RectTransform dropdownRC =...
View Article【C#】Genericの型を値型に限定したい
はじめに C#のGenericは非常によく利用されます。 このGenericはwhereによって指定できる型をある程度制限できますが、こと値型のみに限定するということができません。 ここで言う値型とは byte sbyte short ushort int uint long ulong float double decimal を指します。...
View ArticleC# よく使うusing 名前空間 / (Windows)Form テンプレ作った (Visual Studio使わない人向け)
自分用メモ テキトーなサンプルコードを作るときに重宝するはず。 using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing;...
View ArticleC#初心者の自分用メモ:最初に出てくるものの解読
Unity C#にでてくる最初の構文を解読しました 以下、サンプルコード。 using System.Collections; using System.Collections.Generic; using UnityEngine; public class *** : MonoBehaviour { // Start is called before the first frame update...
View ArticleWindowsでNFCタグを読み取る
【目的】 Windows端末で社員証などのNFCタグからタグの固有ID(IDm)を取得して、アプリケーションで利用します。 先に公開した「Visual Studio 2019 によるExcelアドインの作成」と「Visual Studio 2019 によるExcelアドインの作成 -...
View ArticleC# csc.rspファイルを編集してcsc.exeのデフォルトのオプションを変更しようと思ったらファイルアクセス権が面倒だった話(Visual...
(結論) csc.rspは編集せずに、バッチファイルつくるのがおすすめ() はじめに Windows10環境です。 csc.exeのあるフォルダ1にcsc.rspというファイルがあり、 これを編集するとオプションを変えられます。 が、そのままだと上書き保存ができません。 csc.rspの中身 デフォルトは下記になっているはず。 csc.rsp # This file contains...
View ArticleC# イベントハンドラの追加の書きかた変遷
いまさらだけども。 書き方#1 以前はこんな感じで書いていた(気がする)。 イベントハンドラの追加処理 class クラス { メソッド { : button1.Click += new EventHandler(button1_Click); : } } イベントハンドラのメソッド記載 void button1_Click(object sender, EventArgs e) { : }...
View ArticleバッチファイルにC#コードを埋め込み実行する
バッチファイル内でpowershell経由でC#コードを実行する記事は既にいくつか存在しますが、1ファイル内でバッチファイル部とC#コード部が綺麗に分かれているものが見つからなかったので、より可読性とメンテナンス性向上を目指しつつ作成してみました。 コード RunCSCode.bat @echo off setlocal set BAT_PATH=%~f0 powershell -NoProfile...
View Articleちょっと複雑な並べ替えをするときはLINQが楽でよい
C#のソート方法って色々ありますよね。 検索かけたら、結局どれ使えばいいの?って私はなりました。 一項目だけ昇順にソートできればそれでいいって場合や、複数項目を指定したい…って場合あります。 私としては、複数項目をソートしたい場合はLINQが良いと思いました。 超簡単なコンソールアプリ作って理由を説明していきます。 Student.cs using System; using...
View ArticleC#でgifアニメを作る - ルパン三世のタイトルコール風
こんな感じのgifファイルができる ※画像をクリックして別ウィンドウで見てもらえれば、少しはましに見えるはず。 やりたかったこと Qiitaにアニメーションを投稿できるようにしようと思い、gifアニメファイルを作る方法を調べた。 今回はGifBitmapEncoderクラスを使ったが、 この方法は参考サイトにもあるように、 繰り返し回数や遅延時間は指定できません...
View Article【C#】Genericな基底クラスから派生したクラスをListで管理したい
はじめに この記事は非常にニッチなケースだということを予めお伝えしておきます。 どういう状況か 例えばこのようなクラスがあります。 abstract class HogeBase<T> where T : HogeBase<T> {} このクラスを継承したクラス一覧を配列などで管理しようとしたことはありませんか? そこで特に意識せずタイピングするとこうしたくなります。...
View ArticleC# - フォントメトリクスを調査してみたらカオスだった件 - 未解決
混乱した結果、記事も空中分解気味になってしまったが、とりあえず投稿してみる。 経緯 下記みたいな感じでStringFormatでセンタリング指定してDrawStringしても縦位置がずれるので、調べてみた。 var sf = new StringFormat(); sf.Alignment = StringAlignment.Center; // 横中央 sf.LineAlignment =...
View ArticleUnityで使える便利関数(拡張メソッド)達
はじめに 約一年半「Unity」を使ってきて、よく使う機能やよく繰り返す機能を たくさん作ってきたので、それらの一部分をいくつかのクラスにまとめて公表したいと思います! そのまま使って頂いても構いませんし、 これらのアイデアを元に、更にいいものを作り上げて欲しいとも思っています (それが出来上がったら是非コピp、、、もとい、参考にさせていただきたいです) 公表場所 以下のリポジトリにあります。...
View Article急カーブにも強いNavMeshAgentを作る
NavMeshAgentは簡単にオブジェクトを自動で移動させることができる便利な機能ですが、使っていてある問題が発生したので、その解決策を載せます。 githubに全ソースコードを載せています。 https://github.com/AtshshiMori/NavMeshMovement 問題 以下のようにスピードがある程度遅ければ良いが、早くすると急に曲がるときに通り過ぎてしまう。...
View ArticleVSCodeでOmniSharpのdebuggerが使えない
VSCodeでC#の拡張機能を入れたのにエラーが出る 困ったことにエラーが消えなかったのです。 全く新しいMacOS(MacBook Pro Catalina 10.15.1)にVisual Studio Code(1.39.2)をいれて、C#の拡張機能(Omnisharp)をいれたところ、次のエラーがでました。 「The .NET CLI tools cannot be located....
View Article