iOS」タグアーカイブ

Darts 01 checkout calculator

This app calculates the targets to checkout 01 games of darts.
When you enter the remaining score that can be checkouted within 3 darts, a list of possible arrangements will be displayed.

Calculates and displays possible arrangements according to the specified option, not the general checkout table.
So it is not always that the best arrangement is displayed at the top.
But, we hope to help you discover the new arrangements.

A mini game that can practice checkout arrangements is also included as bonus.

App Store Android app on Google Play

ダーツ01アレンジ計算機

ダーツ01ゲームの上がり目を計算するアプリです。
3ダーツ以内であがることができる残りスコアを入力すると、可能なアレンジの一覧を表示します。

一般的なあがり目表ではなく、指定されたオプションに従って可能なアレンジを計算し表示します。
ですので、必ずしもベストなアレンジが上位に表示されるとは限りませんが、新しいアレンジを発見する助けになれば幸いです。

おまけとしてアレンジの練習ができるミニゲームも収録しております。

App Store Android app on Google Play

[Unity]:MonoBehaviour.OnApplicationPause()の挙動

[検証バージョン]
Unity 5.1.2p2
iOSシミュレータ 8.4
Android Genymotion 4.2.2 API 17

アプリがバックグラウンドに入った時・および復帰した時の処理を記述するMonoBehaviour.OnApplicationPause()

この中に記述する処理が重く時間がかかり途中でアプリが強制終了された場合、どのような挙動になるのか検証してみた。

・検証方法
OnApplicationPauseでバックグラウンド退避時の処理中に数秒待機してデバッグプリントを行う。

using UnityEngine;

public class GameController : MonoBehaviour {
	void OnApplicationPause(bool isPause) {
		if (isPause) {
			Debug.Log("OnApplicationPause()");
			System.Threading.Thread.Sleep(3000);
			Debug.Log("3 seconds lator..");
		}
	}
}

・iOSの場合
アプリ起動中にホームボタン2度押し→アプリを終了

-> applicationWillResignActive()
OnApplicationPause()
3 seconds lator..
-> applicationDidEnterBackground()
-> applicationWillTerminate()

ちゃんと3秒後にデバッグプリントされた後に、バックグラウンド→終了となっている。

ただし、OnApplicationPauseをコルーチンにした場合はバックグラウンドに入った時点で処理が一時停止してしまうので注意が必要。

・Androidの場合
ハードウェアボタンでアプリの一覧を表示→アプリを終了

OnApplicationPause()のデバッグプリントのみで、処理は途中で中断されてしまった?

Androidの場合は、OnApplicationPause()での処理には注意が必要みたい。

ゆるあぷ!様に「あ〜ちゃ〜の大冒険」をレビューして頂きました!

Androidゲームアプリのレビューサイト「ゆるあぷ!」(http://android.yuruapp.com)様に、「あ〜ちゃ〜の大冒険」を取り上げて頂きました!

ゆるふわ天使「あ〜ちゃ〜の大冒険」をあそんでみた

プレイ感などをかなり詳しく、ゆるふわな素敵な感じでご紹介いただきまして、とても嬉しいです!
カメラの移動に関しては他のユーザ様からも要望がありまして、どのような仕様にするか検討中であります。
今後のアップデートで対応できればと考えております。

今後ともどうぞよろしくお願い致します!

[Unity]:iOSシミュレータでネイティブプラグインを動かす

UnityからiOSビルドをする時に、「PlayerSettings」-「Other Settings」-「Optimization」-「SDK Version」をデフォルトの「Device SDK」から「Simulator SDK」に変更する事により、iOS Simulator用のXcodeプロジェクトを吐き出し、iOS Simulator上で動作を確認することができます。

ただUnityのiOS Simulator向けビルドはネイティブプラグインの呼び出しをサポートしておらず、ネイティブプラグイン呼び出し時に以下ようなのエラーを吐いて、動作しません。

EntryPointNotFoundException: initAdBanner_
  at (wrapper managed-to-native) Binding:initAdBanner_ (string)
  at Binding.initAdBanner () [0x00000] in <filename unknown>:0

このエラーを回避し、ネイティブプラグインをシミュレータ上で動作させる方法がこちらのサイトで紹介されていました。

「Jason Lu Game Programmer –
Unity4: Test Unity iOS plug-in on iOS simulator」

画像付きですし分かり易いと思いますが、日本語で分かり易く紹介しておきます。
Unityのバージョンは4.5.5f1で試しています。

変更はUnityからiOS Simulatorビルドで吐き出されたXcodeプロジェクトの以下のソース中の2カ所に対して行います。

 Librariesフォルダ – RegisterMonoModules.cpp

1.mono_dl_register_symbolの宣言を#ifディレクティブの外に出します。

extern "C"
{
	typedef void* gpointer;
	typedef int gboolean;
#if !(TARGET_IPHONE_SIMULATOR)
	const char*			UnityIPhoneRuntimeVersion = "4.5.5f1";
	void				mono_dl_register_symbol (const char* name, void *addr);
	extern int 			mono_ficall_flag;
	void				mono_aot_register_module(gpointer *aot_info);
	extern gboolean		mono_aot_only;
	extern gpointer*	mono_aot_module_Assembly_CSharp_firstpass_info; // Assembly-CSharp-firstpass.dll
	extern gpointer*	mono_aot_module_Assembly_CSharp_info; // Assembly-CSharp.dll
	extern gpointer*	mono_aot_module_Assembly_UnityScript_info; // Assembly-UnityScript.dll
	extern gpointer*	mono_aot_module_Boo_Lang_info; // Boo.Lang.dll
	extern gpointer*	mono_aot_module_Mono_Security_info; // Mono.Security.dll
	extern gpointer*	mono_aot_module_PlayMaker_info; // PlayMaker.dll
	extern gpointer*	mono_aot_module_System_Core_info; // System.Core.dll
	extern gpointer*	mono_aot_module_System_info; // System.dll
	extern gpointer*	mono_aot_module_UnityEngine_info; // UnityEngine.dll
	extern gpointer*	mono_aot_module_UnityScript_Lang_info; // UnityScript.Lang.dll
	extern gpointer*	mono_aot_module_mscorlib_info; // mscorlib.dll
#endif // !(TARGET_IPHONE_SIMULATOR)
	void	initAdBanner_();
	void	moveOffBanners_();
	void	share_();
	void	shareWithImage_();
	void	showAppStore_();
	void	UnityNSObject_RetainObject();
	void	UnityNSObject_ReleaseObject();
	void	UnityNSError_Code();
	void	UnityNSError_Description();
	void	UnityNSError_Reason();
	void	UnityNSNotification_Name();
}
extern "C"
{
	typedef void* gpointer;
	typedef int gboolean;
#if !(TARGET_IPHONE_SIMULATOR)
	const char*			UnityIPhoneRuntimeVersion = "4.5.5f1";
	extern int 			mono_ficall_flag;
	void				mono_aot_register_module(gpointer *aot_info);
	extern gboolean		mono_aot_only;
	extern gpointer*	mono_aot_module_Assembly_CSharp_firstpass_info; // Assembly-CSharp-firstpass.dll
	extern gpointer*	mono_aot_module_Assembly_CSharp_info; // Assembly-CSharp.dll
	extern gpointer*	mono_aot_module_Assembly_UnityScript_info; // Assembly-UnityScript.dll
	extern gpointer*	mono_aot_module_Boo_Lang_info; // Boo.Lang.dll
	extern gpointer*	mono_aot_module_Mono_Security_info; // Mono.Security.dll
	extern gpointer*	mono_aot_module_PlayMaker_info; // PlayMaker.dll
	extern gpointer*	mono_aot_module_System_Core_info; // System.Core.dll
	extern gpointer*	mono_aot_module_System_info; // System.dll
	extern gpointer*	mono_aot_module_UnityEngine_info; // UnityEngine.dll
	extern gpointer*	mono_aot_module_UnityScript_Lang_info; // UnityScript.Lang.dll
	extern gpointer*	mono_aot_module_mscorlib_info; // mscorlib.dll
#endif // !(TARGET_IPHONE_SIMULATOR)
	void	mono_dl_register_symbol (const char* name, void *addr);
	void	initAdBanner_();
	void	moveOffBanners_();
	void	share_();
	void	shareWithImage_();
	void	showAppStore_();
	void	UnityNSObject_RetainObject();
	void	UnityNSObject_ReleaseObject();
	void	UnityNSError_Code();
	void	UnityNSError_Description();
	void	UnityNSError_Reason();
	void	UnityNSNotification_Name();
}

2.RegisterMonoModules()中のネイティブ呼び出しするメソッドの定義を#ifディレクティブから外す

void RegisterMonoModules()
{
    gEnableGyroscope = false;
#if !(TARGET_IPHONE_SIMULATOR)
	mono_aot_only = true;
	mono_ficall_flag = true;
	mono_aot_register_module(mono_aot_module_Assembly_CSharp_firstpass_info);
	mono_aot_register_module(mono_aot_module_Assembly_CSharp_info);
	mono_aot_register_module(mono_aot_module_Assembly_UnityScript_info);
	mono_aot_register_module(mono_aot_module_Boo_Lang_info);
	mono_aot_register_module(mono_aot_module_Mono_Security_info);
	mono_aot_register_module(mono_aot_module_PlayMaker_info);
	mono_aot_register_module(mono_aot_module_System_Core_info);
	mono_aot_register_module(mono_aot_module_System_info);
	mono_aot_register_module(mono_aot_module_UnityEngine_info);
	mono_aot_register_module(mono_aot_module_UnityScript_Lang_info);
	mono_aot_register_module(mono_aot_module_mscorlib_info);

	mono_dl_register_symbol("initAdBanner_", (void*)&initAdBanner_);
	mono_dl_register_symbol("moveOffBanners_", (void*)&moveOffBanners_);
	mono_dl_register_symbol("share_", (void*)&share_);
	mono_dl_register_symbol("shareWithImage_", (void*)&shareWithImage_);
	mono_dl_register_symbol("showAppStore_", (void*)&showAppStore_);
	mono_dl_register_symbol("UnityNSObject_RetainObject", (void*)&UnityNSObject_RetainObject);
	mono_dl_register_symbol("UnityNSObject_ReleaseObject", (void*)&UnityNSObject_ReleaseObject);
	mono_dl_register_symbol("UnityNSError_Code", (void*)&UnityNSError_Code);
	mono_dl_register_symbol("UnityNSError_Description", (void*)&UnityNSError_Description);
	mono_dl_register_symbol("UnityNSError_Reason", (void*)&UnityNSError_Reason);
	mono_dl_register_symbol("UnityNSNotification_Name", (void*)&UnityNSNotification_Name);
#endif // !(TARGET_IPHONE_SIMULATOR)
}
void RegisterMonoModules()
{
    gEnableGyroscope = false;
#if !(TARGET_IPHONE_SIMULATOR)
	mono_aot_only = true;
	mono_ficall_flag = true;
	mono_aot_register_module(mono_aot_module_Assembly_CSharp_firstpass_info);
	mono_aot_register_module(mono_aot_module_Assembly_CSharp_info);
	mono_aot_register_module(mono_aot_module_Assembly_UnityScript_info);
	mono_aot_register_module(mono_aot_module_Boo_Lang_info);
	mono_aot_register_module(mono_aot_module_Mono_Security_info);
	mono_aot_register_module(mono_aot_module_PlayMaker_info);
	mono_aot_register_module(mono_aot_module_System_Core_info);
	mono_aot_register_module(mono_aot_module_System_info);
	mono_aot_register_module(mono_aot_module_UnityEngine_info);
	mono_aot_register_module(mono_aot_module_UnityScript_Lang_info);
	mono_aot_register_module(mono_aot_module_mscorlib_info);
#endif // !(TARGET_IPHONE_SIMULATOR)

	mono_dl_register_symbol("initAdBanner_", (void*)&initAdBanner_);
	mono_dl_register_symbol("moveOffBanners_", (void*)&moveOffBanners_);
	mono_dl_register_symbol("share_", (void*)&share_);
	mono_dl_register_symbol("shareWithImage_", (void*)&shareWithImage_);
	mono_dl_register_symbol("showAppStore_", (void*)&showAppStore_);
	mono_dl_register_symbol("UnityNSObject_RetainObject", (void*)&UnityNSObject_RetainObject);
	mono_dl_register_symbol("UnityNSObject_ReleaseObject", (void*)&UnityNSObject_ReleaseObject);
	mono_dl_register_symbol("UnityNSError_Code", (void*)&UnityNSError_Code);
	mono_dl_register_symbol("UnityNSError_Description", (void*)&UnityNSError_Description);
	mono_dl_register_symbol("UnityNSError_Reason", (void*)&UnityNSError_Reason);
	mono_dl_register_symbol("UnityNSNotification_Name", (void*)&UnityNSNotification_Name);
}

以上の2カ所を修正することにより、ネイティブプラグインがiOSシミュレータ上でも動作するようになります。

にゃんこといっしょ♪

にゃんこといっしょ♪
にゃんこと仲良くなって鳴き声を集めよう!

にゃんこといっしょ♪#1
1.にゃんこにタッチしてみよう!にゃおんがもらえるよ!
にゃんこをタッチした時にもらえるにゃおんは、アイテムを購入・強化すると増えるよ!

にゃんこといっしょ♪#2
2.アイテムを購入してみよう!
自動的ににゃおんが貯まるようになるよ!
アイテムは買う度に値段が高くなっていくよ!

にゃんこといっしょ♪#3
3.アイテムをレベルアップしよう!
もっとにゃおんが貯まるようになるよ!

にゃんこといっしょ♪#4
4.たまに落ちてくるボールを取るとにゃおん大量ゲットのチャンス!
ボールの効果はアイテムをたくさん持っていると、より強力になるよ!

にゃんこといっしょ♪#5
5.新しいアイテムが買いにくくなってきたら、一度「メニュー」ボタンから「リセット」をしてみよう!
リセットをするとリセットボーナスがもらえるよ!

Moku

Moku
にゃんこといっしょ
☆☆☆☆☆
0件の評価
App Store

moku Apps

moku Apps
にゃんこといっしょ♪

[iPhone&iPad]:まちがい探し3D アップデート

たくさんのレビューありがとうございます!
ご要望にお応えしまして、新たに2つのステージを追加して
まちがい探し3D アップデートver.1.1.0を配信開始しました。

4ステージ×5パターン=計20パターンのまちがい探しを3Dでお楽しみいただけます!

Screenshot 2013.12.18 07.56.46 Screenshot 2013.12.18 07.57.09 Screenshot 2013.12.18 07.57.40

今後も引き続き、応援をよろしくお願い致します!

Moku

Moku
まちがい探し3D
★★★★☆
28件の評価
App Store

Unity NEWSにKick Far Away!!が掲載されました!

ユニティ・テクノロジー・ジャパン様のホームページで、Unity3D使用タイトルを紹介しているUnity NEWSのコーナーにKick Far Away!!を掲載して戴きました。

Android / iOS 向け Unity タイトル『Kick Far Away!!』配信開始

Moku

Moku
Kick Far Away!!
☆☆☆☆☆
0件の評価
App Store

moku Apps

moku Apps
Kick Far Away!!