【ハルシオンブログ】文字列の中に記号があるかどうか判断する
こんにちは。
大坂です。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
入力された文字列とかで、記号があるかないかを判断したい時のお話。
正規表現使ってやったりもしますが、「char.IsLetterOrDigit」を使っても出来ます。
こんな感じで書かけます。

Linqを使うとstringの文字列でも確認できるので使いやすいです。(1文字ずつ取り出しても出来ますが…)

記号が含まれている方がちゃんと「false」になっていますね。
こんな方法でも記号のチェックができるという紹介でした。
ではまたノシ
大坂です。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
入力された文字列とかで、記号があるかないかを判断したい時のお話。
正規表現使ってやったりもしますが、「char.IsLetterOrDigit」を使っても出来ます。
こんな感じで書かけます。
Debug.Log(char.IsLetterOrDigit('a'));

Linqを使うとstringの文字列でも確認できるので使いやすいです。(1文字ずつ取り出しても出来ますが…)
string test_1 = "abcdefghijklmnopqrstuvwxyz023456789";
Debug.Log($"test_1:{test_1.All(x => char.IsLetterOrDigit(x))}");
string test_2 = "*abcdefgh<ijklmnopqrstuvwxyz0234567>89;-+";
Debug.Log($"test_2:{test_2.All(x => char.IsLetterOrDigit(x))}");

記号が含まれている方がちゃんと「false」になっていますね。
こんな方法でも記号のチェックができるという紹介でした。
ではまたノシ
Category: 開発日記(Unity)
【ハルシオンブログ】SafeAreaHelperの使い方。SafeArea内でゲームを作ろう!
おはようございます。
いきなり涼しくなってきました。
日々の温度差が激しいですね・・・・風邪には気をつけましょう!坂内っす。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
とまぁポケガ3の宣伝ずっとしてるんですが、ちょっと大きな改修をしていこうと思います。
ちょっとまじでダウンロードも全然なくて、食っていけない現状。
もっと簡単にして今の方にも気軽に遊んでもらえるように・・・・こんな改修でいいんだろうか?全然先が見えませんが、色々やっていくしかないですね。
さて、SafeAreaの話をしたいと思います。
SafeAreaってなんだかわかりますか?
たとえばUnityでこんな画面を作ったとします。
画面の一番上から一番下までのリストがあります。

これをiPhone12Proで実行するとこんな感じになります。

他にもGalaxyS10 5Gだとこんな感じ。

SafeAreaとはこのノッチやカメラの場所を除いたこの場所を言います。

リストがノッチに隠れたりしない、安全な領域ということです。
以前iPhone14Proのダイナミックアイランドの話をしました。
http://halcyonsystemblog.jp/blog-entry-957.html
ここでSafe Area Helperというアセットがあるよーって話をしたのですが、使い方書いてませんでしたので、そちらの使い方を紹介します。
①SafeAreaHelperをアセットストアからインストール&インポート
https://assetstore.unity.com/packages/tools/gui/safe-area-helper-130488
Assets/CrystalFramework/ にファイルがインポートされます。
②Canvasの下に空のGameObjectを配置し、そこに画面の要素を入れます
また、GameObjectは今回SafeAreaという名前にしました。
SafeAreaはStrechで画面いっぱいの範囲にします。

③SafeAreaにSafeAreaHelperのSafeAreaコンポーネントをつけます

これで完成です。
iPhone12Proはこんな感じ。

GalaxyS10 5Gはこんな感じ。

ちゃんとSafeArea内に画面が収まるようにしてくれてます。
簡単にSafeAreaの対応ができてしまう優れものです。
スマホ対応ゲーム作ってる方でSafeAreaどうすれば・・・って方はどうぞ使ってみてください。
以上SafeAreaについてでした。
あでゅ~ノシ
いきなり涼しくなってきました。
日々の温度差が激しいですね・・・・風邪には気をつけましょう!坂内っす。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
とまぁポケガ3の宣伝ずっとしてるんですが、ちょっと大きな改修をしていこうと思います。
ちょっとまじでダウンロードも全然なくて、食っていけない現状。
もっと簡単にして今の方にも気軽に遊んでもらえるように・・・・こんな改修でいいんだろうか?全然先が見えませんが、色々やっていくしかないですね。
さて、SafeAreaの話をしたいと思います。
SafeAreaってなんだかわかりますか?
たとえばUnityでこんな画面を作ったとします。
画面の一番上から一番下までのリストがあります。

これをiPhone12Proで実行するとこんな感じになります。

他にもGalaxyS10 5Gだとこんな感じ。

SafeAreaとはこのノッチやカメラの場所を除いたこの場所を言います。

リストがノッチに隠れたりしない、安全な領域ということです。
以前iPhone14Proのダイナミックアイランドの話をしました。
http://halcyonsystemblog.jp/blog-entry-957.html
ここでSafe Area Helperというアセットがあるよーって話をしたのですが、使い方書いてませんでしたので、そちらの使い方を紹介します。
①SafeAreaHelperをアセットストアからインストール&インポート
https://assetstore.unity.com/packages/tools/gui/safe-area-helper-130488
Assets/CrystalFramework/ にファイルがインポートされます。
②Canvasの下に空のGameObjectを配置し、そこに画面の要素を入れます
また、GameObjectは今回SafeAreaという名前にしました。
SafeAreaはStrechで画面いっぱいの範囲にします。

③SafeAreaにSafeAreaHelperのSafeAreaコンポーネントをつけます

これで完成です。
iPhone12Proはこんな感じ。

GalaxyS10 5Gはこんな感じ。

ちゃんとSafeArea内に画面が収まるようにしてくれてます。
簡単にSafeAreaの対応ができてしまう優れものです。
スマホ対応ゲーム作ってる方でSafeAreaどうすれば・・・って方はどうぞ使ってみてください。
以上SafeAreaについてでした。
あでゅ~ノシ
Category: 開発日記(Unity)
【ハルシオンブログ】null許容型と非null許容型の比較はnullかどうかを短縮できる
こんにちは。
大坂です。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
たまにnull許容型の変数を使うことがあると思いますが、null許容型と非null許容型の比較するときにnull許容型の変数がnullの場合は、結果がfalseになるのでnullチェックを短縮できます。
このような感じで書きたくなりますが、
test_1 != nullの部分を書かなくてもエラーになりません。
ちょっとしたことですが、なかなか気づかないので紹介でした。
ではまたノシ
大坂です。
ポケットガール~受け継がれし希望~よろしくお願いします。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
たまにnull許容型の変数を使うことがあると思いますが、null許容型と非null許容型の比較するときにnull許容型の変数がnullの場合は、結果がfalseになるのでnullチェックを短縮できます。
このような感じで書きたくなりますが、
if(test_1 != null && test_1 == 1){
}
test_1 != nullの部分を書かなくてもエラーになりません。
if(test_1 == 1){
}
ちょっとしたことですが、なかなか気づかないので紹介でした。
ではまたノシ
Category: 開発日記(Unity)
【ハルシオンブログ】UnityのToStringとかで使う桁プレースホルダーとかいうやつ
おはようございます。坂内っす。
さてさて、ポケットガール~受け継がれし希望~はこちら。
みてってみてってー
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
UnityでToStringってよく使うと思いますが、フォーマット形式の「#」ってあるけど使う際には注意が必要ですね。
桁プレースホルダーというらしいです。
効果としては次のような感じ
「対応する数字で#を置き換える
対応する数字がない時は表示されない」
”対応する数字がない時は表示されない”という性質があるので、使いどころを間違えると整数部分が出ないことになります。
Debug.Log((123).ToString("#"));
Debug.Log((123.5).ToString("#.0"));
Debug.Log((123.5).ToString("#"));
Debug.Log((0.5).ToString("#,0"));
Debug.Log((0.5).ToString("#.0"));
Debug.Log((123456).ToString("###"));
Debug.Log((123).ToString("######"));
Debug.Log((0).ToString("#"));
Debug.Log((0).ToString("0"));
例えばこんな時の結果はこちら。
123
123.5
124
1
.5
123456
123
0
少数点以下は四捨五入のようですね。
0プレースホルダーにすると、0の時はちゃんと0が出ます。
0の時に何も出さないようにする時に使う感じでしょうか。
今日は桁プレースホルダーのお話でした。
では、あでゅ~ノシ
さてさて、ポケットガール~受け継がれし希望~はこちら。
みてってみてってー
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
UnityでToStringってよく使うと思いますが、フォーマット形式の「#」ってあるけど使う際には注意が必要ですね。
桁プレースホルダーというらしいです。
効果としては次のような感じ
「対応する数字で#を置き換える
対応する数字がない時は表示されない」
”対応する数字がない時は表示されない”という性質があるので、使いどころを間違えると整数部分が出ないことになります。
Debug.Log((123).ToString("#"));
Debug.Log((123.5).ToString("#.0"));
Debug.Log((123.5).ToString("#"));
Debug.Log((0.5).ToString("#,0"));
Debug.Log((0.5).ToString("#.0"));
Debug.Log((123456).ToString("###"));
Debug.Log((123).ToString("######"));
Debug.Log((0).ToString("#"));
Debug.Log((0).ToString("0"));
例えばこんな時の結果はこちら。
123
123.5
124
1
.5
123456
123
0
少数点以下は四捨五入のようですね。
0プレースホルダーにすると、0の時はちゃんと0が出ます。
0の時に何も出さないようにする時に使う感じでしょうか。
今日は桁プレースホルダーのお話でした。
では、あでゅ~ノシ
Category: 開発日記(Unity)
【ハルシオンブログ】Unityでスクリプトファイルを作成して日本語が文字化けするとき
こんにちは。
大坂です。
今日もポケットガール~受け継がれし希望~ の宣伝から。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
Unityでスクリプトファイルを作成して日本語が文字化けするしているときがありますかね?

これ「utf-8-bom」で保存しなおせば直ります。
VisualStudioで直す場合は、[ファイル]→[名前を付けて〇〇.csを保存]を選択

上書き保存の右にある下矢印を押して、[エンコード付きで保存]を選択

既に存在するみたいなポップアップで[はい]を押すと、
エンコードが選べるので[Unicode(UTF-8 シグネチャ付き)]を選択

これで対象ファイルの文字化けが直ります。

まぁこれだと毎回直さないといけないので、Unityでスクリプトを作成した時にデフォルトで
「utf-8-bom」になるようにしておくのがいいですね。
方法はプロジェクトのフォルダの「.sln」ファイルが置いてあるところに

下記の内容の「.editorconfig」を置くとデフォルトで「utf-8-bom」になります。
文字化けで困ることがあれば試してみてください。
ではではノシ
大坂です。
今日もポケットガール~受け継がれし希望~ の宣伝から。
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
Unityでスクリプトファイルを作成して日本語が文字化けするしているときがありますかね?

これ「utf-8-bom」で保存しなおせば直ります。
VisualStudioで直す場合は、[ファイル]→[名前を付けて〇〇.csを保存]を選択

上書き保存の右にある下矢印を押して、[エンコード付きで保存]を選択

既に存在するみたいなポップアップで[はい]を押すと、
エンコードが選べるので[Unicode(UTF-8 シグネチャ付き)]を選択

これで対象ファイルの文字化けが直ります。

まぁこれだと毎回直さないといけないので、Unityでスクリプトを作成した時にデフォルトで
「utf-8-bom」になるようにしておくのがいいですね。
方法はプロジェクトのフォルダの「.sln」ファイルが置いてあるところに

下記の内容の「.editorconfig」を置くとデフォルトで「utf-8-bom」になります。
root = true
[*.cs]
charset = utf-8-bom
文字化けで困ることがあれば試してみてください。
ではではノシ
Category: 開発日記(Unity)
【ハルシオンブログ】Unityの基本だけど、9patchの作り方(?)です。UI作ってて9patchどうやるんだっけ?って方どうぞ参考にしてください
こここんにちは。坂内っす。
ポケガの宣伝は忘れずに!
ただし、このブログを見てくれてる人に宣伝してもしょうがないのはわかっている・・・・
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PVはこちら
ここから本題。
Unityでイメージの9patch(9sliceとも呼ばれてますよね)って使ってますか?
基本ではありますよね。
例えば、こんな絵があります。
サイズは256x96

このままのサイズでUnityでImageにするとこうなります。

しかし、この枠の絵を使って、500x500の枠を作るとこうなりますよね。

そんな時は、絵に9patchを施す(?)必要があります。
Sprite Editorを開きます。

で、各上下左右の線を使い、伸ばす可能性のあるところを4線で囲むようにします。

ImageのImageTypeをSimpleからSlicedに変更します。

この状態ならば、Imageのサイズを変えても枠の部分は伸びずに、先ほど線で囲った部分が伸びるようになります。

また、Pixel Per Unit Multiplierをいじることで、絵のサイズも変更できるので、うまく調整してみてください。
ということで、基本の基本ではありますが、9patchの作り方です。
では、あでゅ~ノシ
ポケガの宣伝は忘れずに!
ただし、このブログを見てくれてる人に宣伝してもしょうがないのはわかっている・・・・
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PVはこちら
ここから本題。
Unityでイメージの9patch(9sliceとも呼ばれてますよね)って使ってますか?
基本ではありますよね。
例えば、こんな絵があります。
サイズは256x96

このままのサイズでUnityでImageにするとこうなります。

しかし、この枠の絵を使って、500x500の枠を作るとこうなりますよね。

そんな時は、絵に9patchを施す(?)必要があります。
Sprite Editorを開きます。

で、各上下左右の線を使い、伸ばす可能性のあるところを4線で囲むようにします。

ImageのImageTypeをSimpleからSlicedに変更します。

この状態ならば、Imageのサイズを変えても枠の部分は伸びずに、先ほど線で囲った部分が伸びるようになります。

また、Pixel Per Unit Multiplierをいじることで、絵のサイズも変更できるので、うまく調整してみてください。
ということで、基本の基本ではありますが、9patchの作り方です。
では、あでゅ~ノシ
Category: 開発日記(Unity)
【ハルシオンブログ】ボタンとかで画像の透過部分をクリックさせたくないとき。
こんにちは。
大坂です。
今日も今日とて ポケットガール~受け継がれし希望~ をよろしくお願いします!
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
さて、今週のUnityネタです。
ボタンとかで画像の透過部分をクリックさせたくないときのお話。
前にも書いたことありますが、簡単になったというか1行書くだけでできるようになったので紹介。
まずは対象の画像の設定で「Read/Write」にチェックを入れる。

対象のImageの「alphaHitTestMinimumThreshold」を「1」にする。
一応コード
これだけで透過部分がクリックできなくなります。
わかりにくいですが、透過部分でクリックしていて、画像の色が変わらないのでちゃんと透過部分では反応しなくなってます。

こんな感じで簡単に透過部分をクリックできないようにすることができるにで、試してみてくださいまし。
ではではノシ
大坂です。
今日も今日とて ポケットガール~受け継がれし希望~ をよろしくお願いします!
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PV:
さて、今週のUnityネタです。
ボタンとかで画像の透過部分をクリックさせたくないときのお話。
前にも書いたことありますが、簡単になったというか1行書くだけでできるようになったので紹介。
まずは対象の画像の設定で「Read/Write」にチェックを入れる。

対象のImageの「alphaHitTestMinimumThreshold」を「1」にする。
一応コード
[SerializeField] Image imgStar;
void Start() {
imgStar.alphaHitTestMinimumThreshold = 1;
}
これだけで透過部分がクリックできなくなります。
わかりにくいですが、透過部分でクリックしていて、画像の色が変わらないのでちゃんと透過部分では反応しなくなってます。

こんな感じで簡単に透過部分をクリックできないようにすることができるにで、試してみてくださいまし。
ではではノシ
Category: 開発日記(Unity)
【ハルシオンブログ】Unity+Playfabで簡単にサーバ時間が取れるよ!これで端末時間使わなくてすむね!
坂内っす。
ポケガ3ことポケットガール~受け継がれし希望~がリリースされて、1カ月と1週間くらいが過ぎました。
非常に厳しい状況ですが、まだまだバージョンアップしていこうと思います!
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PVはこちら
さて、UnityでPlayfabって使ってますか?
以前Playfabは便利だよーって記事を書き、そのあとも何度かPlayfab周りの記事は書いたりしているのですが。
http://halcyonsystemblog.jp/blog-entry-627.html
こやつを使っていると、簡単にサーバ時間が取れるんです。
サーバ時間使いたいっすよね?
端末時間だと端末の時計いじると変えられちゃうので、ゲームによってはサーバ時間が欲しいってこともあるかと思います。
そんな時は、Playfabを使用し、次の手順で時間をとることができます。
①Playfabにログインする
②PlayFabClientAPI.GetTimeでサーバ時間を取得
これだけでサーバ時間をとることができます!
もちろん日本時間にするには、取得した時間+9時間が必要になります。
こんな簡単にサーバ時間が取れるPlayfabすごい!
ということで、サーバ時間をとる方法でした。
あでゅ~ノシ
ポケガ3ことポケットガール~受け継がれし希望~がリリースされて、1カ月と1週間くらいが過ぎました。
非常に厳しい状況ですが、まだまだバージョンアップしていこうと思います!
URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
URL(iOS):https://itunes.apple.com/jp/app/id1539553611
PVはこちら
さて、UnityでPlayfabって使ってますか?
以前Playfabは便利だよーって記事を書き、そのあとも何度かPlayfab周りの記事は書いたりしているのですが。
http://halcyonsystemblog.jp/blog-entry-627.html
こやつを使っていると、簡単にサーバ時間が取れるんです。
サーバ時間使いたいっすよね?
端末時間だと端末の時計いじると変えられちゃうので、ゲームによってはサーバ時間が欲しいってこともあるかと思います。
そんな時は、Playfabを使用し、次の手順で時間をとることができます。
①Playfabにログインする
②PlayFabClientAPI.GetTimeでサーバ時間を取得
これだけでサーバ時間をとることができます!
もちろん日本時間にするには、取得した時間+9時間が必要になります。
こんな簡単にサーバ時間が取れるPlayfabすごい!
ということで、サーバ時間をとる方法でした。
あでゅ~ノシ
Category: 開発日記(Unity)
| h o m e |