ライブラリお久しぶりです。前回の投稿からもう早2年以上経ちます。現在はアプリ開発チームに所属しており、SwiftやらKotlinを書いてます。iOS13は破壊的な変更が多く、その中にSHA256の返却値とアルゴリズムが少し変わったことで、使えなくなるケースがありました。そのため、今回はDigest認証について書くことにしました。Digest認証はいくつか方法があり、Part別でやっていこうと思ってます。いうThirdPartyLibraryについてになります。SHA256やHMACの内容自体は割愛します。?様々な暗号化に対応していて、簡単にHMACやSHA256できるライブラリ。スター数も7000以上あり、更新頻度やコミニティも活発。Managerにも対応しています。toCocoaPodsを使用してやっていこうと思います。1.0'SHA256の場合String型からでも、Data型でもどちらでも可能です。SHA256化した文字列Bytesの場合は別の書き方も可能です。最後にCryptoSwiftを使うと容易に暗号化が出来ちゃうので、便利ですね。iOS13が破壊的な変更が多く、対応に追われているアプリエンジニアが多いと思いますが、一緒に乗り切りましょう...。なんやかんやありましたが、ちゃんと生きてます。現在は会社を退職し、新しい会社でiOSエンジニアとして働いております。C#もそこそこ好きだったんですが、Swift触ってみるとC#よりも楽しいという...。今後について仕事でUnityを使うことがなくなってしまったため、趣味で本当に少し触る程度しかこれからはやらないつもりです。気が向いた時にまたアセットとか買って、書こうかなーって思ってます。仕事でSwfitを使うことになったのもあるので、Swiftの入門記事やらテクニックやらが、それなりに身についてきたら記事にでもしようかと思います。Unityのあの画面がたまに恋しくなります...。ゲームの作り方はじめにお久しぶりです。最近は鈍っていて自作ゲームの進捗がよくありません...。それはさておき、今回は有料Asset(安い)を使って「前回のノベルゲームっぽいものを作ってみた」を改良してみたいと思います。このAssetを使うと、数倍楽にノベルゲームっぽいもの作ることができます!gyazo.com今回使うAssetはこちら。「$5」!!!これを使うとこんなことができちゃいます。始めるわけなのですが、前回の記事のをそのまま持ってきます。TypeFaceAnimatorのアニメーションの仕方をよしなに変える。新たに「ScenarioTextController」というC#のスクリプトを作り、アタッチ。OutLineがついていると、TypeFaceAnimatorが正常に動作しない[原因解明中]ScenarioTextControllerせっかくなので、少し違った感じで書きますが、TextControllerと似ている部分があるので、コピペして使ってもよし!gist.github.com終わりにTypeFaceAnimatorはこのほかにも色々な用途に使うことが可能です。・スタッフロール個人的には上記に使いたいですね。買い物をする楽しさがわかってしまい、ハマりました...。いい感じのAssetが見つかったら、また記事にしようかと思います。(TypeFaceAnimatorは、テラシュールブログさんの記事に魅了されて購入しました。uGUIお久しぶりです。前の記事から数ヶ月が経とうとしています...。ゲーム制作を進めていました。(結構、疎かにしていましたが...)今回作っているゲームは社畜を題材にした、クリッカーゲームです!よくある系のものを作ってみたいと思ったので、このジャンルにしてみました。一応、ここまで出来てます。クリックするとお金が増えるんですが、数字付けてないから見にくい...。gyazo.comノベルっぽいものも作ってみました。ノベルっぽいものは基盤に、こちらの記事を使ってます。家に帰ってきて、寝る前の1時間ぐらい、ちょくちょくと進めております。最近はJSばかり触っていたので、C#の書き方、忘れてますね...。デザインパターンなかなか設計について乏しいので、勉強したところを記事にしてみます!最近LOLが始まり、また別で作っているゲームアプリがあるのでなかなか記事を書く時間がなく更新できませんでした・・・。今回はコマンドパターンを使って、キャラクターを動かしてみたいと思います。gyazo.comコマンドパターンとはあるオブジェクトに対して要求を送るということは、そのオブジェクトのメソッドを呼び出すことと同じです。メソッドにどのような引数を渡すか、ということによって要求の内容は表現されます。それには限界があります。そこで要求自体をオブジェクトにしてしまい、そのオブジェクトを引数に渡すようにします。それがCommandパターンです。Commandパターンは、要求をCommandオブジェクトにして、それらを複数組み合わせて使えるようにするパターンです。(引用して使わさせていただきました)プレイヤークラスの実装まずはキャラクターの基底クラスとプレイヤークラスを作っていきます。CharaBaseを継承したプレイヤークラスにします。今回はパターンの紹介なので、移動のみしか作っていません。次にプレイヤーが起こす行動(コマンド)のクラスを実装していきます。行動の基底クラスを作り、それを継承してそれぞれの行動を作っていきます。引数にプレイヤーを入れることで、プレイヤーを簡単に変えることが可能です。今回は移動のコマンドのみを作ってみます。今度はプレイヤーの操作を受け取るクラスを作ります。操作が実行されたら、プレイヤーのコマンドを返すようにします。ここで先ほど作ったMoveCommandの参照をHierarchyで指定してあげられるようにします。(今回は、矢印キーの右左を押されたらMoveCommandの参照を返り値で渡すようにしています)PlayerInputHandlergist.github.com早速使ってみるキャラクターを動かすために色々準備してあげましょう。1.キャラクターを2体作り、プレイヤークラスをアタッチしましょう。(見栄えを考慮してUnityのキャラクター達を使わさせて頂きました)2.次に、PlayerInputHandlerとMoveCommandを空のオブジェクトとして作り、アタッチします。PlayerInputHandlerのMoveCommandを指定してあげます。3.最後に操作するためのゲームシーンクラスを追加します。UpdateのPlayerInputHandlerでプレイヤーの行動をフレーム毎に呼び、操作を受け取ります。操作していないのであれば、nullが返ってくるので動作は何もしません。移動を検知したのであれば、PlayerCommandを継承したMoveCommandが返り値としてくるので、移動がPlayerで実行されます。gist.github.com実行中にGameSceneにあるプレイヤーのインスペクターの参照をPlayer_2にしてあげることで操作できるプレイヤーを変えることができます。gist.github.comまとめこれがコマンドパターンと呼べるかはわかりませんが、近いことはしていると思います。TECHSCORE(テックスコア)このコンテンツの一部には『ユニティちゃんライセンス』で許諾されたアセットが使用されています。2D今回はUnityでこんなの作っていこうと思います。gyazo.comゲームジャムやプロトタイプ等で使えるかと思います。テラシュールブログさんの"uGUIでノベルゲームのようなものを作る"の記事を「iTweenで動かした場合」の様な記事になると思います。文字を表示する部分を作っていきます。CanvasとPanelを生成。2.作成したCanvasを指定、CanvasScalerのUIScaleModeをScaleWidthOrHeightに変更3.また、その下にあるScreenMatchModeをExpandに変更。4.Panelの名前を好きな名前に変更(自分はNobelUIにしました。以下NobelUI)。NobelUIのImageは消しておきましょう。5.NobelUIの子要素にImageを追加。名前をFrameにしましょう。Heightを150にし、アンカーで位置と大きさを変更します。好きな画像をFrameにしてみましょう。6.Frameの子要素として、Textを追加。文字が見にくいのでTextにAddComponentでOutlineを付けてあげましょう。(OutLineの色や大きさは好み)7.また、Textのアンカーを全体にし、文字の大きさも変更しつつ、Textの文字がちゃんと枠内に埋まる様に調整してあげましょう。(自分はTextの大きさを20にし、色を白にしました。)見栄えを考慮して、フォントを変更し、背景やキャラクターを置いてみました。(背景を使用したい場合は、NobelUIのImageに背景をセットし、Alpha値を1.0にしましょう)背景と画像とフォントを設定するだけで、見栄えが良くなります。会話部分を作ってみる枠の中の文字について触れていきます。iTweenのダウンロードはこちらから。TextControllerという名前のスクリプトをC#で作りましょう。ノベルゲームっぽい文字を制御するためのスクリプト1.TextControllerを空のオブジェクトにアタッチ(空のオブジェクト名もTextController)2.TextControllerの中身を設定。・lineTextはFrameの子要素のTextを指定する。・scenariosはSizeを好きな値にして、台詞を中に格納する。実行するとこんな感じになります。gyazo.com注意点iTweenのeaseTypeを使う事は避けましょう。このままやってしまうと、文字の上限を通り越してしまい、ArgumentOutRangeExceptionが出てしまいます。まとめ改善点は色々とありますが、iTweenで作る事も可能です。ここから拡張していくと、簡単なノベルゲームっぽいものが作れます。喋っているキャラクター以外は暗くする上記のようなものを盛り込んでいけばもっとそれっぽくなるかと思います。unitypackageも置いておきます。uGUI今回はこんなの作っていきます。作ってみるざっくりとしたメニューですが、それなりに使えます。(背景は確認用として見難かったので後から入れました。実装には入っておりません)アイコン素材の方はこちらを使っていきます。オブジェクトを作り、名前をMenuBarにし、アンカーを設定します。MenuBarの色を見やすい色にし、ToggleGroupとHorizontalLayoutGroupコンポーネントを追加します。Canvasの子要素にToggleを追加。名前はHomeとします。HomeのToggleのGroupをMenuBarに設定します。HomeのBackgroundとCheckMarkのImageを家っぽいアイコンに変えましょう。LabelのテキストをHOMEにして、それぞれの位置を調整します。(アセット素材のアイコンが小さいのでScaleを2にしました。EffectsからOutLineを付けます。(色は好みで構いません。文字にもOutLineを付けると見やすくなると思います。Homeをコピー&ペーストで増やします。それぞれいじって名前を変えましょう。作ったメニュータブをMenuBarの子要素にします。チェックを外しておきます。こんな感じになったかと思います。Canvasの子要素に空のオブジェクトを作成。アンカーを画面全体にして、MenuBarとかぶらないようにBottomを調整します。名前はMenusとします。Menusの子要素にImageを作成し、アンカーを画面全体にします。画像の色を黒くして、透明度は半分ぐらいにしましょう。名前はOverlayにしました。これを使って、ShopかOption選択時は黒い画像を敷いてタッチできないようにします。ShopとOptionがわかりにくいので、タイトルのヘッダー的なものを作ります。Menusの子要素にImageを作成し、アンカーを設定します。そのImageの子要素にTextを追加して好きな文字を入れましょう。Imageの名前はShopContentにしました。ShopContentをコピー&ペーストしてOptionも作ります。MenuBarのShopのToggleコンポーネントにある、OnValueChangedを設定します。(+)マークを押して、要素を追加します。SetActiveに設定します。1と同様にOnValueChangedにイベントを追加し、ShopとOptionには黒い画面を敷くように設定します。1と2の内容をOptionにも設定をします。HomeにはOverlayを非表示にするイベントを設定しておきます。最初はHomeが選択されているので、OverlayとShopContentとOptionContentはOffにしておきます。これで完成になります。Shopの内容を追加していく場合は、ShopContentの子要素として追加する形になります。まとめこれを使うと、思ったより簡単にメニューが実装できそうです。簡単なゲームのメニューとして使うのであればバッチリだと思います。(見直す部分はそれなりにありますが・・・)よければ使ってみてください。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。