Unity

Unity 2DでRaycast/Colliderを使わずにマウスの位置からクリックされたオブジェクトを取得する

Unity 2Dで、UIなどに対してボタンを使わずにクリック判定を実装しようと思った場合に、ググると大体以下のような手順が記載されています。 EventSystemを追加 対象のオブジェクトにBox Collider2Dなどのコンポーネントをアタッチ Box Collider2Dのサイズを…

【Unity】スクロールビューに配置された要素の上でマウスホイールによるスクロールができない問題を解決する

概要 Unityにデフォルトで用意されているGUIのScroll Viewについて、これは名前の通り限られた表示領域に多くのオブジェクトを配置できるスクロール可能なレイアウト用オブジェクトですが、 これはデフォルトの状態だとマウスホイールでスクロールすることが…

【Unity】Resouce.Load以外から画像を読み込んでSpriteに変換する

Unityでファイルから画像を読みこんで GUIのImageコンポーネントなどに設定するには、通常は以下のようにすると思います。 var sprite = Resources.Load<Sprite>("image_xxx"); var image = GameObject.Find("SomeSprite").GetComponent<Image>(); image.sprite = sprite; </image></sprite>…

【Unity】UniRxで列数、行数から動的にセルサイズを調整するGrid Layout Groupを実現する

Unityのレイアウト用コンポーネントの1つにGrid Layout Groupがあります。 名前の通りグリッド、もといエクセルのような表形式でオブジェクトを配置する場合に使うためのコンポーネントですが、個人的にはいまいち使い勝手が悪いと感じています。Grid Layout…

Ubuntu 18.04(Zorin OS 15.2)にUnity+C#の開発環境を構築するメモ

はじめに 最近自宅のPCにLinuxを導入しました。仕事でMacを触るようになってから、Windowsのコマンドライン関連を含めた使いづらさが目立つようになり、その他の細かい不満点を含めて脱Windowsを目指そうと思ったからです。 LinuxディストリビューションはZo…

【Unity 2D】一番簡単なHPバーの作り方+その他ダメージ演出

よく作るのでメモしておきます。コード全体へのリンクは記事の最後に貼ってあります。 とりあえず一番簡単なHPバーの作り方 本当に最低限の労力でHPバーを作るなら以下のようになります。前提としてヒエラルキーにCanvasが存在し、Render ModeがScreen Space…

UnityでTransformのposition.x, y, zの各値を、拡張メソッドで直接変えられるようにする

さんざん言われてることだとは思いますが、UnityでTransformの位置、つまりpositionの値を変更したいと思ったとき、positonのx,y,zという各値を直接変更することはできません。 //これはできない transform.position.x = 10f; これはtransform.positionが、…

【C#】Unityで一からギャルゲー(ノベルゲーム)作るためのサンプルコード

一応は前回の記事の続きにあたりますが、コードの内容はほとんど別物です。 前回の記事ではゲームの方針として脱出ゲームのようなものを考えていましたが、今回はやや方向性を変えギャルゲーっぽいものを作ることを想定します。 今回の記事でやりたいことは…

【C#/Unity】出現率から項目を一つルーレット選択で選ぶ拡張メソッド

RPGなどで、出現率(選択確率)などからある項目を一つ選びたい場面がしばしばあると考えられます。 例えば、敵の各行動が行われる確率を以下のようにDictionary形式で表すとするとき var enemyActionProbs = new Dictionary<string, int>() { { "attack", 60 }, { "guard",</string,>…

Unity 2Dでサイコロを作る

こういうの作ります。 3Dのサイコロを作る方法はいくつか他サイトで公開されていて、2Dのサイコロも同じようにしてすぐ作れるだろうと思っていたら、思いの外苦労したのでその過程を記録しておくことにしました。 制作過程 まずはサイコロの各面の画像を適当…