スマゲ

スマートなゲームづくりを目指して日々精進

UnityでFPSを求め、表示するコンポーネント

UnityでFPSを求める方法はいろいろな方が紹介していますが、Unityのプロジェクトを作成するたびに毎回その実装をするのは面倒なので、どんなプロジェクトにも簡単に導入できるようにコンポーネントとして切り出してみました。■機能仕様 ・0.5秒ごとにFPSを計…

Unityで迷路の生成フローを可視化する

前回紹介した迷路の自動生成アルコリズムを可視化してみました。 smartgames.hatenablog.com今回は前回使用した穴掘り法の他に棒倒し法も可視化してみます。■実装(穴掘り法) コードの中身は前回のものとあまりかわりません using System; using System.Linq;…

Unityのナビゲーションを使って自動生成した迷路を解かせる

Unityのナビゲーションシステムを利用して、迷路を解いてみます■実行イメージ ■迷路の生成方法 迷路の生成方法はいくつかありますが、今回は穴掘り法という方法を使います。参考リンク 穴堀り法 迷路生成アルゴリズム | Miga's Hobby Programming■実装 ・盤…

Unityでパズドラ風3Matchパズルを作る_その6_ステータス表示編

今回はコンボ表示を行いたいと思います。■前回の内容 Unityでパズドラ風3Matchパズルを作る_その5_演出編4 - スマゲ■本編の完成イメージ ■コード確認用リポジトリ github.com■環境 Mac OS Sierra 10.12.4 Unity 5.6.0 f3 言語 C#■UI表示用のクラスをつくる …

Unityでパズドラ風3Matchパズルを作る_その5_演出編4

今回はピースが消えるときの演出をつけてみようと思います■前回の内容 Todo : Add urlUnityでパズドラ風3Matchパズルを作る_その4_演出編3 - スマゲ ■本編の完成イメージ ■コード確認用リポジトリ github.com■環境 Mac OS Sierra 10.12.4 Unity 5.6.0 f3 言…

Unityでパズドラ風3Matchパズルを作る_その4_演出編3

今回は選択されているピースがわかりやすいように演出を追加してみます。■前回の内容 Unityでパズドラ風3Matchパズルを作る_その3_演出編2 - スマゲ■本編の完成メージ ■コード確認用リポジトリ github.com■環境 Mac OS Sierra 10.12.4 Unity 5.6.0 f3 言語 C…

Unityでパズドラ風3Matchパズルを作る_その3_演出編2

今回は前回作った削除の演出にアニメーションをつけてみようと思います。■前回の内容 Unityでパズドラ風3Matchパズルを作る_その2_演出編1 - スマゲ■本編の完成メージ ※Gifだとわかりづらいですが、ピースが移動するときもアニメーションをしています ■コー…

Unityでパズドラ風3Matchパズルを作る_その2_演出編1

前回作った3Matchパズル(ロジックのみ)ですが、ピースが消える部分や、補充される部分があまりにも味気ないので、ちょっとそれっぽくします。■前回の内容 Unityでパズドラ風3Matchパズルを作る_その1_ロジック編 - スマゲ■本編の完成イメージ ■コード確認用…

Unityでパズドラ風3Matchパズルを作る_その1_ロジック編

Unityでパズドラ風の3Matchパズルを作ってみます■シリーズ全体での完成イメージ ■本編の完成イメージ ※演出は実装していないので一瞬で処理が終わります ※サクッとコードだけ確認したい方はこちら github.com■環境 Mac OS Sierra 10.12.4 Unity 5.6.0 f3 言…

Unityでソーシャルゲームの体力回復処理を実装する

Unityでソーシャルゲームによくある体力回復機能の処理を実装してみます■完成イメージ ■機能要件 ・時間で体力を回復する ・体力を回復できる ・体力を使用することができる■管理方法 ・最後に体力を回復した時間を保持し、その時間との差分から次に回復する…

UnityEditorでゲームシーンのスクリーンショットを撮るEditor拡張

UnityEditorでGameシーンのスクリーンショットを撮るためのEditor拡張を作成しました。github.com■使い方■動作要件 ・Unity4以上 ・Mac, Windows■導入 ・GitHubリポジトリのunitypackageフォルダ以下のUniEditorScreenshot.unitypackageを利用■機能 ・スクリ…

UnityでiOSのローカル通知を実装する

Unity5でiOSのローカル通知を利用する方法まとめてみます■環境 Mac OS X 10.11.5 Unity 5.4.0f3 Xcode 7.3.1■通知の許可を求める iOS8からはアプリがユーザーに対して通知の許可を求める必要があるため、ユーザーに確認用画面を表示する using UnityEngine; …

Unityのplayerprefsでbool(真偽値)を保存する

Unityでboolean(真偽値)を保存してみる■動機 UnityはPlayerPrefsを利用することで、int, float, stringの値を保存できるが、bool値は保存できない。 そのため、intやstringの値を保存するときと同様にbool値を保存するにはどのようにすれば良いか考えてみた…

Androidで使えるライブラリの種類まとめ

Androidで利用することのできるライブラリを軽くまとめました■アンドロイドライブラリについて その名の通り、アンドロイドで利用出来るライブラリのこと ・アンドロイドライブラリを作成、利用する主な目的 ┗ モジュール性 : コードを幾つかの論理的なユニ…

Unityでビルドわけを簡単に行うサンプル

Unityでビルドわけを簡単に行うサンプルを書いてみました■ビルドわけを行うメリット ・スクリプトを書き換えを行うことなく、実行環境を変えることができる ・BuildSettingsをビルドごとに設定し直さなくて済む ・出力ファイル名を指定できるため、出力後の…

Unityのエディタ拡張を利用して開発環境の切り替えを行う

Unityのエディタ拡張とシンボル定義を利用して開発環境の切り替えを簡単に行えるようにします■関連 Unityで条件付きコンパイルを行う - スマゲ Unityのエディタ拡張でPlayerPrefsを削除する - スマゲ■切り替え方法 1. シンボル定義を行い、開発環境と、本番…

Unityで条件付きコンパイルを行う

Unityでシンボル定義を利用して条件付きコンパイルを行います■条件付きコンパイル プログラムの特定のブロック、コードだけを選択してコンパイルすること。アプリケーションを混合言語で利用したり、プラットフォーム依存コンパイルを行ったりする時に利用す…

UnityでスクリプトからiOS,Androidのビルドを行う

UnityでスクリプトからiOS,Androidのビルドを行います■検証環境 Unity5.3.5f1 Mac OS X 10.11.5■利用する機能 ・エディタ拡張 ・ビルドパイプライン■実装 Assets/Editor以下にスクリプトを作成する MenuItemを利用してビルド用の設定を追加、呼び出すメソッ…

C#での定数利用について

C#の定数利用について、今更ながら確認を行いました■C#での定数 c/c++ では #define を利用して定数を定義できたがc#ではそのような利用はできなくなり、シンボル定義のみの扱いになった。 その代わり、constやreadonlyを利用する必要がある。ちなみにプロジ…

Unityで端末の加速度センサを利用する

Unityで端末の加速度センサを利用してみます。取得するのは端末の傾きです。■対象 iOS, Android端末■設定 利用OSのPlayer Settings を開いてConfigurationからAccelerometer Frequencyから取得する加速度のサンプリング回数を設定する 何かしら数値が入って…

Unityでbashを利用する

UnityのPostProcessBuildでbashを動かしてみます。 UnityはEditor以下にPostprocessBuildPlayerファイル(拡張子なし)を作成し、シバンを記述すれば様々な実行環境でコードを走らせることができますが、今回は PostProcessBuild + Process でbashを実行します…

UnityでXcodeの設定を自動化する方法まとめ

UnityでXcode出力後に必要な設定を自動化する方法です。 今回はよく利用しそうなものをサンプル形式でまとめました。■利用する機能 Unity5から標準利用できるようになったXcodeAPIを利用 Unity - Scripting API: PBXProject■自動化項目 ・ビルド設定の編集 …

UnityでのFPS設定まとめ

UnityでFPSがどのように設定されているのかをまとめます。■FPS(Frames Per Second)とは 1秒あたりの画面更新回数。この値が高いほど動画やゲームが滑らかに見える。■UnityでFPSを設定する方法 1. Quality Settingsから設定する 2. TargetFrameRateを設定する…

UnityでGameCenterのLeaderBoardを利用する

UnityでGameCenterのLeaderBoardを利用してみます■LeaderBoard GameCenterある機能の一つで、ユーザーが獲得したスコアを集計して順位付けを行う。いわゆるランキング機能■AppIdの設定 Member Centerにログインし、新規AppIdを設定する■iTunesConnectでの準…

Unityでアプリのバージョンを取得するプラグイン

UnityでiOS/Androidアプリのアプリバージョン、ビルドバージョンを取得するプラグインを作成しました■プラグイン github.com■利用用途 ・タイトル画面に現在のアプリのバージョンを表示する ・アプリ内でインストールされているバージョンが最新かどうか判断…

iOS, Androidアプリのバージョンを取得する

iOS, Androidアプリのバージョン、ビルドバージョンを取得します。■バージョン アプリのバージョンでユーザーの目に触れるもの、AppStoreやGooglePlayStore、アプリのタイトル画面などに表示される■ビルドバージョン アプリが内部で保持するバージョン、ユー…

iOSのストア用スクリーンショットの各サイズを一括で準備する

iOSアプリを申請するときに必要な画像群を一括で準備する■iOSアプリ申請に必要なサイズ iOSのアプリ申請には以下のサイズのスクリーンショットが必要であり、それぞれの画面サイズに対して最低1枚、最大5枚の画像を登録する必要がある。そこでimagemagickと…

Unityでアプリのストアページを開くプラグイン

Unityでアプリのストアページを開くプラグインを作成しましたgithub.com■概要 リリースされたアプリのApp StoreやGoogle Play Storeのアプリページを開く■インストール プロジェクトをZipでダウンロード、もしくはクローンする dist/uniStoreOpener.unitypac…

iOS/Androidでアプリのストアページを開く

アプリのストアページを開いてみます■用途 ・アプリのレビューをお願いする ・自社のアプリを紹介する■Android実装 AndroidMarketとGooglePlayStoreの両方に対応する。 final String appPackageName = activity.getPackageName(); try { activity.startActiv…

【iOS】Unityで通知許可のダイアログを出す

Unityで通知許可のダイアログを出します■ダイアログ ■ダイアログの必要性 iOS8から、ユーザーに対して上記のポップアップにより通知の許可を得る必要がある。許可を得ないままだと、通知を登録してもユーザーに届かなくなる■アラートを出すスクリプト Assets…

Unityで画面をタップした位置にオブジェクトを移動させる

Unityで画面をタップした位置にオブジェクトを移動させます■完成イメージ ■利用用途 スマホゲームでのタップエフェクトなど■カメラの設定 カメラのprojectionをorthographicにする ■オブジェクトの移動 Input.mousePositionで画面をタップした場所を取得、Sc…

Unityでゲームの停止時間を取得する

Unityで前回ゲームをプレイしてから次に起動するまでの時間を取得します■利用用途 放置系のゲームでゲームの放置時間に応じてアイテムを付与する■現在のUnix時間を取得する Unityで時間を扱う - スマゲよりDateTimeからUnix時間を求める関数を使う TimeUtil.…

Unityでタイマーを作る

Unityでタイマーを作ってみます■関連 Unityで時間を扱う - スマゲ■完成イメージ ■UIの準備 uGUIを使っていい感じにボタンを配置する ■タイマー機能の実装 Time.deltaTimeを利用して残り時間から直前のフレームに要した時間を引く 残り時間が0になったらタイ…

Unityで時間を扱う

Unityでゲームでよく使いそうな時間関連の情報を得る方法をいつくか挙げます・現在時刻 ・UnixTimeの変換 ・フレーム数の取得 ・経過時間の取得 ・1フレームごとの時間の取得■現在時刻 c#のDateTimeを利用 Systemの名前空間を追加 using System; 以下のスク…

UnityのuGUIでフレームのみのボタンを作る

UnityのuGUIでフレームのみのボタンを作ります■完成イメージ ■画像の用意 外枠のみが白で内側が透過されている画像を用意する 画像はサイズ32x32で縁幅がそれぞれ2ピクセル ■Unityの切り分け 画像をUnityへインポートしインスペクターからSprite2d(2D and UI…

UnityでRuntimePermissionを利用するプラグイン

UnityでRuntimePermissionを利用するプラグインを作成した■関連 Android6.0からのPermissionの仕様変更についてのまとめ - スマゲ AndroidのRuntime Permissionを実装する - スマゲ UnityでRuntimePermissionを実装する - スマゲ■動作環境 Unity 5.0以上■導…

UnityでRuntimePermissionを実装する

UnityでRuntimePermissionを実装します■関連 Android6.0からのPermissionの仕様変更についてのまとめ - スマゲ AndroidのRuntime Permissionを実装する - スマゲ■UnityでのRuntimePermissionに関して Android6.0では特定の権限を利用するアプリ(targetSdkVer…

AndroidのRuntime Permissionを実装する

AndroidをRuntime Permissionを実装してみます■関連 Android6.0からのPermissionの仕様変更についてのまとめ - スマゲ Requesting Permissions at Run Time | Android Developers■実装 ・AndroidManifest.xmlに利用したい権限を追加する <uses-permission android:name="android.permission.CAMERA" /> ・権限をリクエスト</uses-permission>…

Android6.0からのPermissionの仕様変更についてのまとめ

Android6.0(Marchmallow)から一部のPermissionについて仕様が変わりました■AndroidのSystem Permissionについて アプリケーション上で特定の動作を行いたい場合、その内容に応じてユーザーに対して許可を取る必要がある。たとえば電話機能を利用したアプリの…

Unity Packageの使い方

Unity Packageの使い方をまとめます■Unity Package ・Unityで作成したアセットを共有/再利用するときに利用する ・複数のファイルを一つのファイルとしてまとめることができる ・ファイル構造を保持したまま圧縮、展開できる■Unity Packageのインポート方法 …

UnityでTwitter投稿をするプラグイン

UnityでTwitter投稿をするプラグインを作成しました■イメージ iOS Android ■動作要件 対応OS: iOS6.0以上, Android Unityバージョン: 5.0以上■実装 【iOS】UnityでTwitter投稿する - スマゲ 【Android】UnityでTwitter投稿する - スマゲ■コード github.com■…

【Android】UnityでTwitter投稿する

Android端末にてUnityでTwitter投稿をする方法です■完成イメージ ■Twitter投稿するコード Unity から Twitter でつぶやく | Lonely Mobiler ここを参考に、というかそのままですが、実装します。 Application.OpenURL("http://twitter.com/intent/tweet?text…

【iOS】UnityでTwitter投稿する

iOS端末にてUnityでTwitter投稿をする方法です■完成イメージ ■Twitter投稿するコード objective-c++ファイル(拡張子 .mm)を作成し以下のように記述 Social.frameworkを利用します(iOS6.0以上) #import <Social/Social.h> extern "C"{ void uniTwitterShare(const char *text);</social/social.h>…

UnityでSceneManagerを使う(応用編)

Unity5.3から実装されたSceneManagerでソーシャルゲームによくあるUIを実装していきます基本編はこちら UnityでSceneManagerを使う(基本編その1) - スマゲ UnityでSceneManagerを使う(基本編その2) - スマゲ■完成イメージ ~ 実装 ~ ■基本シーン作成 Unity…

UnityでSceneManagerを使う(基本編その2)

Unity5.3から実装されたSceneManagerを利用する方法をまとめます今回はSceneの情報をどのように取得するかをまとめますその1はこちら UnityでSceneManagerを使う(基本編) - スマゲ ■SceneManagerSceneManagerには以下の静的変数があります・sceneCount 現在…

UnityでSceneManagerを使う(基本編その1)

Unity5.3から実装されたSceneManagerを利用する方法をまとめます(C#)■前準備SceneManagerを利用するにはSceneManagement名前空間が必要なので using UnityEngine.SceneManagement; を遷移を実装したいスクリプトの上部に記述しておく また、遷移を行うシーン…

UnityでClipboardを利用するプラグイン

UnityでiOS、Androidのクリップボードを利用するプラグインを作成しましたUniClipboardgithub.com機能 それぞれのOSのクリップボードにテキストを保存する利用用途 ゲームのプレイヤーID等を他のアプリでシェアするためにクリップボードに一時保存する 他の…

Unityで重力加速度を変更する

Unityで重力加速度を変更する方法です 方法1 インスペクターからの編集 Menu -> Edit -> Project Settings -> Physics のGravityで値を変更できます 初期値は x: 0 y: -9.81 z:0 で地球と同じ設定になっています 例えばこの設定を x: 0 y: 9.81 z: 0 として…

Unityで好きなシーンからゲームを再生する

Unityでゲームを開発しているとあるシーンをちょっといじってすぐに動作を確認したいときがあるそのときの手順は以下の通り タイトルシーンを探して開く プレイして動作を確認する 元のシーンを開き直す 単純だけど、毎回行うのは結構めんどくさいということ…

Unityで通知アイコンのバッジを削除する(iOS)

Unityでプッシュやローカル通知をするときにバッジをつけられますが、それを消す具体的なメソッドがまだ内容なのでプラグインとして作りました。プラグインの作り方は以下を参照 UnityでiOSのプラグインを作成する - スマゲまずはバッチを消すメソッドを obj…