ルルのゲーム開発備忘録

主にUnityやC#に関する情報を気まぐれに投稿していきま~す

2022-01-01から1年間の記事一覧

【Confluence】無料プランだとカスタムスタイルシートを有効化できないっぽい?

コンフルエンスの見栄えをよくするためにCSSを設定しようとしたが、ルック&フィールにカスタムスタイルシートのタグがそもそもなかった。 →どうやら「管理→セキュリティ設定」の中にあるカスタムスタイルシートのチェックをいれて有効化する必要があるらしい…

【Confuluence】管理グループにユーザーを追加する方法

①コンフルエンスの左上にあるマークをクリック。 ②「管理」を選択。 ③権限を変更したいユーザーがいるConfuluenceの製品の欄の右の「・・・」をクリックし、「ユーザーを管理」を選択。 ④権限を変更したいユーザーの欄の右の「・・・」をクリックし、「ユー…

【Confuluence】ページを左寄せにする方法

Confuluenceのページを作成したときにデフォルトで、ページの内容が真ん中に表示されるようになっていた。 左寄せにするには、ページ右上あたりにある「←→」ボタンでページを全幅設定にすると左寄せになった。

【Unity】関数名やプロパティ名はわかるけど、どのusingを使えばいいかわからないよ~って時に使うショートカット

結論 windowsでVisual Studioの環境なら「Alt + Enter」で該当しそうなusingディレクティブを示してくれる。(macは調べてないからわからないけど「cmd + Enter」とかかな?) 内容 時々関数名やプロパティ名はわかるけど、どのusingディレクティブを追加すれ…

【Unity】フレームレートを変更する方法

以下の1行で、好きなフレームレート数に設定できます。 // 30フレームに設定 Application.targetFrameRate = 30; あくまで目標とするフレームレート数なので、処理が間に合わない場合は それ以下のフレームレートになります。 1フレームの処理が終わった場合…

【Unity】定数用のクラスを定義

どこのスクリプトからでも参照したい定数をまとめておくクラスの作成例の一つです。 public static class GrobalConst { public static class PlayerSetting { public static int INIT_PLAYER_NUM = 3; public static int MAX_PLAYER_NUM = 16; public stati…

文字列の中にある文字列が含まれているかどうかの判定

C#

たとえば"あいうえお"の中に"あい"が含まれているかどうかを調べるときはIndexOfを使うとできます。 var str1 = "あいうえお"; var str2 = "あい"; Debug.Log(str1.IndexOf(str2)); 出力:1 str2が"いう"の場合は2が返ってきます。 逆に含まれていない文字…

.gitignoreにgitを無視するファイル名を追記したのに無視されないときに確認すべきこと

何も変更したつもりがないのに自動で更新が入って、gitに差分が毎回現れるファイルをgitの追跡から削除したいときは.gitignoreファイルにファイル名を追記します。 しかし、一度Addしてcommitしたファイルは.gitignoreに追記しただけではその後も差分が出て…

最新のUnityで"Recompile After Finished Playing"がなくなった?

LTSの2021.3.10f1のUnityを使っているのだが、どうやらScript Changes While Playingの項目から Recompile After Finished Playingがなくなっているみたい (どなたかご存知の方いたら教えていただけると幸いです) 設定画面 ↓のリンク先でも話題に上がって…

UnityのCanvas Scalerの最低限の設定

UnityでuGUIを使うときに必ずつかうこととなるCanvas Scalerコンポーネントについて とりあえずこれさえ知っておけばどんな端末の画面でもレイアウト崩れを抑えることができる 項目を紹介します。 UI Scale Mode → Scale With Screen Size これでどんな画面…

UnityのCanvas Scalerの最低限の設定

UnityでuGUIを使うときに必ずつかうこととなるCanvas Scalerコンポーネントについて とりあえずこれさえ知っておけばどんな端末の画面でもレイアウト崩れを抑えることができる 項目を紹介します。 UI Scale Mode → Scale With Screen Size これでどんな画面…

今日.gitignoreに追記したファイル

gitでバージョン管理をし始めたが、エディターの設定を変更しただけで UserSettings以下のファイルで差分がでてしまった。 github作成時のUnity用gitignoreファイルのテンプレートには これを除外する記述がなかったので以下の形で追記しました。 /[Uu]ser[S…

Unity実行中に、シーンを編集してしまった際の緊急保存方法!

Unityで作業している際に、ゲーム実行中にシーンを編集しても保存されません。 実行中のエディターの色を変えてわかりやすくする方法もありますが、それでもうっかりしてると 時々やってしまい、せっかく編集したのに...ということがあるかと思います。 そん…

基本情報技術者メモ : ディスパッチ

実行可能なタスクにCPUの使用権を割り当てること。

基本情報技術者メモ : CPUの投機実行

命令1の結果が0だった場合は命令2を実行し、それ以外は何もしないというようなものを分岐命令と呼ぶ。分岐命令は通常1の実行後、結果を見て命令2を実行するが、命令1と2を並列に処理しておけば高速化が図れる。このように分岐命令の次を予測して命令を実行す…

基本情報技術者メモ : アンチエイリアシング

液晶ディスプレイなどでは、ドットの集まりで表示している都合上、曲線や斜線はギザギザに見えてしまうことがある。これを目立たなくする技術をアンチエイリアシングといい、線の境目に中間色を補い、滑らかに見せる。

基本情報技術者メモ : ディスプレイの種類

液晶ディスプレイ 液晶に電圧をかけて色を変え、バックライトなどを用いて画像を表示する。薄くて省電力だが斜めから見えにくい。 有機ELディスプレイ 電圧を加えると水から光る有機物を利用して画像を表示する。消費電力が低い。

tips:プレハブのオーバーライドでできる編集とできない編集

Unityのシーン上のプレハブインスタンスに対して修正を行うことをオーバーライドという。オーバーライドでできる編集には、以下のものがある。 ・**プロパティの値の変更**:変更すると値の表示が太字に変わる ・**コンポーネントの追加**:新しいコンポーネ…

tips:return文はvoidの関数でも使える

通常return文は、戻り値がある関数で使うが、 voidの関数内でも使うことができる。 処理を早めに返したい時などに使えるし、コードが読みやすくなることもある。

tips:CanvasコンポーネントのRender Modeについて

CanvasのRender Modeプロパティの3モードについて ### ###Screen Space - OverlayモードUIの表示位置やサイズを2Dのスクリーン座標系で指定するモード。 最後にレンダリングされ、必ず最前面にUIが表示されるので3Dオブジェクトに隠れることはない。 ボタン…

tips:プログラミングのKISS、DRY、YAGNI 3原則

プログラミングの一般原則として有名なKISS、DRY、YAGNIの3つの原則について紹介する。 ##KISS原則(シンプルであれ) 「Keep It Simple, Stupid」もしくは、「Keep It Short and Simple」の略語で、 とても有名な原則。プログラミングは常に複雑さとの戦い…

tips:個人的に一番使うUnityショートカット

Shift + F12 個人的には、間違いなくこれを叩いてる回数が一番多い Visual Studioで変数名や関数名を選んで上記ショートカットを叩くと 参照元・参照先が全部わかりすぐにそこにとべる。(飛んだ後に戻るにはctrl + -) (Windowsでのショートカット macはわか…

tips:2つの配列を同じインデックス同士で結びつける

2つの配列があり、それぞれの要素は同じインデックスによって何らかの結びつきがある状況において LINQのZipメソッドを使うと、2つの配列から別の配列を簡単に作り出すことができる。 ```var jWeeks = new List<string>{ "月", "火", "水", "木", "金", "土", "日"</string>…

tips:連続して参照すると異なる値が返るプロパティは定義しない

連続して呼びだすと異なる値が返るプロパティは原則として定義しない方が良い。 ```// ダメな例public int Value{ get{ _index++; return _numbers[_index]; }}``` プロパティではなく次のようなメソッドにすれば、 連続して呼び出した時に違う値が返ること…

tips:引数にoutキーワードをつけたメソッドは可能な限り定義しない

outキーワードを使っているメソッドは良いメソッドとは言えない場合がほとんど。 特に引数が一つでそれにoutキーワードがついているメソッドは、明らかに設計ミスである。 呼び出しもとに結果を返すなら戻り値として返すべき。 **<span style="color: #000000">唯一outキーワードが許され</span>…

tips:継承するときの注意点

クラスの継承はis a関係が成り立つときだけ使う。 共通のプロパティがあるからといって共通部分を抜き出して 基底クラスとして定義しようという考えは間違っている。 共通化のための継承は百害あって一利なし。 継承はそれほど多用するものではない。

tips:プレハブを普通のオブジェクトに戻す方法

プレハブを普通のゲームオブジェクトに戻す(展開する)には 右クリックメニューから prefab→unpack を選択すると展開される。 ネスト化されたものまで全て展開するにはunpack completely ただし、オーバーライドしているものは展開されない

tips:プレハブモードから抜けるとundoできなくなる

Unityの作業で、プレハブモードでプレハブを編集して プレハブモードから抜けるとundoができなくなるので オブジェクトを削除した後などは注意するよう心がける。

tips:書き込み専用プロパティは定義しない

getキーワードのないsetキーワードだけのプロパティは定義してはいけない。 オブジェクトにおける属性を表すものがプロパティなので 属性の値を知ることのできないプロパティはプロパティとしての意味がない。 もしそういうものがあるならそれはプロパティで…

tips:変数の宣言はできるだけ遅らせる

変数の宣言をクラスやメソッドの先頭にまとめて書く人がいるが、それはいい書き方とは言えない。プログラムの理解を妨げることになるし、バグを混入させる危険を高めることになる。先頭で宣言する変数は全体で利用される変数であるという認識をもつ。