2022年9月14日水曜日

UI部品をプレハブにして、必要なときに生成するためのTips

UI 部品(Text,Image 等)をプレハブにして必要なときに呼び出したい。
そのような場合、引っかかってしまうポイントと、その対処(PlayMaker での)
についてです。

UI 部品をプレハブにして、[ Create Object ] アクションでゲーム画面に配置して
も明後日の方向に出現してしまいます。

プレハブを呼び出した後、ヒエラルキーのCanvas内に配置し直し、位置設定を
しないといけません。そのためのアクションセットになります。

上の画像のステートでは

[ Create Object ] で「ima ゲージ (1)」なる、Image(画像)を生成しています。
その生成したオブジェクトを ゲームオブジェクト変数 「gobj 生成オブジェ」
に格納します。

そして次に、[ Set Parent ] でCanvas の子オブジェクトにします。

最後に[Rect Transform Set Local Position ] でCanvas内の位置を設定します。
これで希望の位置にUI部品を生成、配置することができます。


2022年9月2日金曜日

最新Unity [2022.1.14f1 ] に 最新PlayMaker [1.9.5.f3 ]を入れてみてのアレコレ(2022年09月02日現在)

 

普段はまだ Unity2019 を使用しているのですが、UnityもPlayMakerも
着々と進歩しています。新しい情報にも触れておいたほうが良いですね。というわけで、最新のシステムに関するアレコレです。
というか雑感でしょうか。

まず、初期プロジェクトについて。
最近はアプリを2Dで作ることが多いのですが、そのためには
プロジェクトの作成はじめに2Dテンプレートを選択することに
なります。
それが、何かすごく容量が大きい…。何も作成する前にすでに
1.3GBとかです。

2Dスプライト関連のファイルが大きいんでしょうか。
3Dテンプレートで作成すると400Mとかですし。
Unity2019では2Dに特別なテンプレート自体もなく300MBぐらい
だったかな。
あと、2Dのスプライトが、丸や四角などいくつか選べるように
なってますね。具体的な違いはまだよくわかりません。
その他のUnity側の新機能等は公式の情報などで賄えると思います。

そしてPlayMaker側で気付いた事。

@ スプライトアクションが標準に

以前は、カスタムアクションとしてエコシステムなどから調達しなければならなかったSprite関連のアクションが標準で一通り含まれています。
スプライトの切り替え(SetSprite)やなんやがそのままできます。もっと以前からあっても良かったですね。


@ 新しいインプットシステムへの対応アクションが追加

公式の新しい入力システムパッケージ[ Input System ]  をPlayMakerから
操作するためのものです。
どうやらカスタムパッケージをインストールしないとアクション
ブラウザのリストに、出てこないようです。

スクリプトはAssets/PlayMaker/Action/PlayerInput の中にあります。
アクションの使い方は、「unity inputsystem playmaker」などで
検索すると動画等、出てきます。


@ TextMesh Pro への対応

現在のUnityのUIはTextMesh Proを使うのが標準です。
以前のText 、Button 等も使えますがレガシー扱いです。
TextMesh Pro をPlayMakerから使うためには、カスタム
アクションを導入しなければなりません。

https://github.com/ericvanderwal/TextMeshPro_Playmaker

ここからDLできます。Codeボタン から Download Zip 。
解説動画もあるようです
https://www.youtube.com/watch?v=G7l-qPeZteE


他にも Unity側の新機能に対応するアクションは
[cinemachine、VR関連etc…]、エコシステムやウェブ上の
検索で結構見つかると思います。

2022年8月5日金曜日

100%PlayMaker [わんさでぃボトルメッセ]

PlayMakerのみで作ったWindowsアプリです。

一日一度だけ、ネットの海の彼方の誰かに、手紙を送ったり受け
取ったり出来る、ボトルメッセージ
アプリ。Windows用

公開ページ
https://sino.sakura.ne.jp/bottle.htm

 

2022年8月3日水曜日

IAP アプリ内課金の実装について

スマートフォンアプリでゲーム内アイテムなどを販売する場合
UnityIAP を使用します。

「ほぼコードレスで実装できる」とのことですが。
PlayMakerの入ったエディタであれば、完全にコードレスで実装できる
といっても良いのでしょう。

UnityIAP アセットのインストールについては、他に詳しく解説されて
いる方が沢山いらっしゃるので、そちらにお任せしたいと思います。

公式にある

Codeless IAP を利用します。

Unity のIAP アセットのインストール

【Unity】コードレスIAPで超簡単に課金実装(Android編)

(注 上記記事では、[IAP Catalog の作成] で
      Automatically initialize UnityPurchasing (recommended) に
      チェックを入れたほうが良いと思います。コードでイニシャ
      ライズを指示する必要がなくなるため)


------

ここでは、上記の
@ IAPの導入。
@ 販売アイテムの設定
@ 課金ボタンの作成

までが済んだ段階から、販売ボタンが押されてアイテムが購入がされた
場合の処理を、PlayMaker のFSM 内のステートで行う為の設定をします。

-----

まず、空のオブジェクトを作成し、PlayMakerのFSM を設定します。

------


そして、購入成功、失敗それぞれの場合のイベントを作成し
外部からの送信イベントとして、それぞれ設定します。





-----

IAPボタンのインスペクタでは、購入成功、失敗の場合の処理を
設定します。






このように





オブジェクトに、作成した空のオブジェクトを指定すると
Function にPlayMaker のFSM へのイベント送信が選択できます。
(画面外で見えませんが、PlayMakerFSM から [SendEvent(String]
  を選択しています。)

イベント名は、FSM で設定したものを書き込みます。

購入成功
購入失敗

----

そしてエディタを再生し、購入ボタンを押してみると。





このように、PlayMaker の ステートへ処理が渡されます。

2022年7月21日木曜日

(覚書)様々な画面サイズのスマホ全てに、ゲーム画面を対応させる

以前はスマホの画面も、16;9 のハイビジョン比率がほとんどでしたが、
最近は、様々な画面サイズの機種が登場しています。

16:9 を想定してビルドしたアプリは、それ以外の画面比率の
機種では、ゲームフィールドの縦横がはみ出たり、足りなかっ
たり、UI のレイアウトが崩れたり。自ずと不具合が出てしまいます。
それに対応する Tips です。

Unityの画面のアスペクト比と解像度を自動変換 全スマホ・複数解像度に対応させる

https://3dunity.org/game-create-lesson/clicker-game/mobile-adjustment/

説明を読み、掲載されているスクリプトを適用すると、様々な
スクリーンサイズ(アスペクト比)内にゲーム画面、UI をエディタ
での想定通りに表示してくれます。