Unity++blog.

UnityやC#とかについて学習したことを書いてます

C#

UniRxを使ってuGUIのボタンイベントを簡単に実装する

以前もこの内容は少し書いたことありますが、おさらいで書きます。 ボタンのイベント登録は通常↓ このインスペクターのOnClickへスクリプトを格納してうんたらかんたらとやって実装しますが、UniRxだと書き方を知っていればこんな面倒なことをやらずにすみま…

動的に変わる他のスクリプトの変数を参照する

C#

動的に変わる変数の値を取得したい時の書き方ですが、勘違いしていたところがあるので記録。 動的に変わる変数の取得なので、インスタンスの生成をStart時ではなくて、値が欲しいしたい瞬間に(イベント時やUpdate内)に生成して変数を取得するものだと思っ…

エラー:型'UnityEngine.Vector3'を'UnityEngine.Quaternion'に暗黙的に変換できません

C#

あるオブジェクトの角度を他のオブジェクトの角度に適用しようとすると型'UnityEngine.Vector3'を'UnityEngine.Quaternion'に暗黙的に変換できませんとエラーがでたので調べてたら、Vector3からQuaternionへ(その逆も)変換できたので書いておきます。 Var…

Linqわかりやすい記事

メモ gist = "Linq" qiita.com qiita.com qiita.com

オブジェクト生成

オブジェクト生成メモ エフェクトを生成↓ オブジェクトの生成は、宣言・格納して public GameObject obj ; これで呼べますが、 Instantiate(obj); 引数にPositionを指定することができる。 Instantiate(生成するオブジェクト、position(生成する場所)、rot…

スクリプトから親子関係を構築・解消する

イベントによって親子関係を構築したり解消させたりしたかったので、調べたものを書いておきます。 参考にさせてもらったサイト様 qiita.com 下の画像で、スタート時に透明なゴーストキャラクターを実体のあるキャラクターの子要素にして、コライダーの所ま…

エディタの拡張をやってみる

あまり必要ではなかったのでエディタ拡張を調べたことがなかったのですが、やり方の仕組みくらいは理解しておきたかったので調べて試してみました。 参考にさせて頂いたサイト様です。 gametukurikata.com qiita.com まずどういったことが出来るかですが、い…

赤信号になると自動的に止まり、青信号で歩く

通行人が赤信号になると自動的に止まり、青信号で歩き出すように作ってみました。 前回記事の続きです↓ nabesi777.hatenablog.com 前回作成したスクリプトを利用して、赤信号の時には動きを止めるColliderを出現させ、青信号の時には出発をさせるColliderを…

交差点の信号機の制御

交差点の信号機の色の遷移のスクリプト作りましたー 前回記事↓ nabesi777.hatenablog.com こんな感じです。 Junctionという空オブジェクトを作成してその中に信号機を4つ入れます。 そして色を分けたい信号機を、わかり易いように名前にAとBをつけました。 …

Visualstudioでよく使うコードスニペット

最近コードスニペットをよく使い出しました。 コードスニペットとは、コードの途中でtabを押すと自動的に形を完成させてくれる便利機能の事です。 知ったら必ず使い出しますね!実際に使っている、使用する頻度の高いものをいくつか書きます。 "for" + tab ↓…

アニメーションをつけて通行人の作成

通行人作りました~ 通行人を作成しようと思って無料のキャラクターをダウンロードしたのですが、付属のアニメーションは「レガシー」らしくて、Animatorへは使えませんよーと下のようにでました。 アニメーションのインスペクターのRigタブ、「Animation Ty…

フィールド変数の宣言について( [SerializeField] )

C#

開発初心者のほとんどがフィールド変数の変数の宣言を↓として そして、このようにInspector上で数字を弄ったりしていると思います。 でもそんなのだめだよーって記事を読んで、ふむふむとたまに [SerializeField] を使って宣言してたりしてましたが、今いち…

正規表現を使って携帯番号かどうかを判別する

C#

正規表現なるものを学んだので、それを使って携帯番号番号判別メソッドを作ってみました。 正規表現とは以下のサイトから言葉をお借りすると 「文字列をひとつの形式で表現するための表現方法です。」 とてもわかりやすくまとめられてます。 www.mnet.ne.jp …

C# 日時の変換一覧メモ

C#

日時変換一覧書き出しました~

複数のコンストラクターを作成する

C#

複数のコンストラクターを作成する方法です。 UnityにはStart関数がコンストラクターはあまり馴染みがないのですが、C#の勉強中なのでメモメモ Classの初めに呼ばれるコンストラクターって引数を変えて複数設置する事ができるようです。書き方は下記のように…

オプション引数を使って、引数を省いて呼び出せるようにする

C#4.0以降よりオプション引数を使って、引数を省いて呼び出せるようにすることができるようです。 メソッドを作る時に()内に引数の宣言しますが、その際に初期化も同時に行います。そして呼び出す側から引数が渡されなかった場合には、その値がデフォルト…

varの使い方

C#

コードを書くのを楽にしてくれる便利な「var」! 使うところに一応ルールみたいなものがあるらしいので、ブログに残しておきます。プログラミング初心者でvarをなんとなく使っている人向けの記事です。 varというのはC#3.0から使えるようになったもので、型を…

Delegateでイベントを通知する

C#

イベントは多分Unityの方で前にも書いたけど便利なので、また書きます。 英語学習アプリを作る際に使いました! カウントが規定数以上になったら、その事を通知して処理をするという流れで使いました。 まずDelegateの宣言をします。 TestEventの場所へ任意…

C# 複数の二次元配列同士を連結・結合させる

C#

二次元配列を2つまで連結させる記事はあったのですが、複数を連結させる記事がなかったので自分のやったやり方を書いておきます。(応用しただけですが) string[ , ] a string[ , ] b string[ , ] c string[ , ] d このように複数の二次元配列を x=a+b+c+d…

英語練習アプリ経過

Unity全然触ってないので、ブログの更新が止まってます・・ (ボタンをアセットからダウンロードした時だけ開いた!笑) 今の状況はUnityを使用するときよりもプログラミングしている時間が長いので、 やべーー!プログラミングちょーーー楽し――――!!と く…

▶C# SQL server テーブル名を動的に変数で代入する

C#

Unity 関係ないけど・・ sqlの命令文で使うstring文の連結ですが、終わってみるとめっちゃ簡単なのに全然情報がにたどり着かない・・(探し方が悪いのでしょう)、また迷子にならないよう書いておきます。 通常のテーブルの列情報を書き換えたり取り出したり…

VisualStudio Codealignmentをダウンロードして コードを綺麗に整列させる 

とても気に入ったので忘れないようにメモ Visualstudioで使えるコードを整列させる無料機能です。 marketplace.visualstudio.com ダウンロードは簡単で、下のダウンロードボタンを押すと次回Visualstudioを立ち上げた時に自動的に入っています。 ツールバー…

Windowsフォームアプリでオンライン上のサウンドをさせる方法

C#

Unityは関係ないですがめもめも (自分用に英語スピーキング強化アプリを作ってます。) Urlの場所には音源先のUrlリンクを右クリックからコピーして入れてます。 方法 : Windows フォーム内でサウンドを非同期的に読み込む | Microsoft Docs MIDI、MP3など…

キャラスピードなどの数値に合わせて音のボリュームをスムーズに変える

スピードなどの数値に合わせてサウンドボリュームをスムーズに変えるスクリプトをつくったので記事にします。 下が様子をキャプチャした動画です。風の音を変えています。 画面右側のNowVolumeが現在の音の大きさの移り変わりで、Fadeが変化するスピードです…

Update内でSoundの再生をするときに、音割れ、音がでない、音が連続で再生される時に試すスクリプト

音がうまく再生できないときに、自分が嵌ったので書いておきます。 簡単にしかサウンドを触っていないと嵌るかも。 そもそもUnityやってると、コードが悪いのか・素材が悪いのか・設定方法が間違っているのか等と、何が原因で働かないのかが判明するまでに時…

ブーリアンをもっと使おうと思ったリファクタリングの記事

C#

ブーリアン使うのは使うけど、こんな使い方は思いつかった! 自分的には可読性がすごくいい qiita.com

風の吹くエリアを設置してPlayerへ影響を与える

風の吹くエリアを設置してPlayerへ影響を与える方法です。 前提としてPlayerや影響を与えたいオブジェクトへはRigidbodyを付けている必要があります。 わかり易いようにCubeを使いました。 Cubeを作成して、RigidbodyをComponentへ加えます。この時、UseGrav…

変数名を一括で変更する(VisualStudio)

変数名を変えたい時に、ひとつひとつ変更するのは面倒だなぁって思って調べたら一括で変更ができるようです。 とっても便利だと思うので書いておきます。 例えば下の「rb」という変数↓ 良くない変数名みたいです。 そしてこの変数を色々な場所で使っているた…

シーンを変えずにステージを変えるスクリプト

シーンを変えずにステージを変えるスクリプトです。 イメージはこんな感じで、キャラクターがゴールしたら次のPositionへ移動してゲームを再開するというものです。 今回の場合ではスタート場所とゴール場所をそれぞれ3つ用意しました。(空オブジェクトで…

オブジェクトを一瞬だけフリーズさせて、その場にビタッと止めてまた動けるようにする

リジットボディーを使用していて、ある場面でバシー!と動きを止めたい時にどうすればいいかの方法です。 キャラクターにアタッチされているスクリプトとして rb = this.GetComponent<Rigidbody>(); rb.constraints = RigidbodyConstraints.FreezePosition; //position</rigidbody>…