Category Archives: Unity

Unityでメールを送信するアプリがiOSで動かない問題

0
Filed under Unity
Tagged as ,

Unityで作ったアプリでメールを送信するコードを書き、Unity Editor上では動いているのだが、iOSでは送信されない、という問題が発生しました。
(検証バージョン Unity 5.6.4p1)

前エントリではAndroidの不具合でしたが、iOSではまた色々と対応が必要でしたので、下記にまとめます。

.NET 2.0にする

これはAndroidでの対応と同じですが、Player Settings内にある、Configurationの、Api Compatibility Levelを「.NET 2.0 subset」となっている場合「.NET 2.0」にします。

Unity Player Settings Configuration .net 2.0 subset

link.xml

Assets/以下にあるlink.xmlを修正します。使用しているライブラリと一緒に作成されているケースもありますが、無ければ作成します。
※参考ページ

<linker>
<assembly fullname="System">
<type fullname="System.Net.Configuration.MailSettingsSectionGroup" preserve="all"/>
<type fullname="System.Net.Configuration.SmtpSection" preserve="all"/>
<type fullname="System.Net.Configuration.SmtpNetworkElement" preserve="all"/>
</assembly>
</linker>

既にある場合は、同様のノードに追加します。

追加Frameworkの指定手順

XcodeでビルドするときにFrameworkの追加設定が必要なことがあります。
Assets/Editor/PostBuildProcess.cs というファイルを作ります(ファイル名は任意ですが、パスはEditor以下である必要があります)。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.iOS.Xcode;
 
public class PostBuildProcess {
 
	[PostProcessBuild(100)]
	public static void OnPostProcessBuild(BuildTarget target, string path)
	{
		if (target == BuildTarget.iOS)
		{
			PostProcessBuild_iOS (path);
		}
	}
 
	private static void PostProcessBuild_iOS( string path ){
		string projectPath = PBXProject.GetPBXProjectPath(path);
		PBXProject pbxProject = new PBXProject();
 
		pbxProject.ReadFromString(File.ReadAllText(projectPath));
		string target = pbxProject.TargetGuidByName("Unity-iPhone");
 
		pbxProject.AddFrameworkToProject(target, "AssetsLibrary.framework", false);
		pbxProject.AddFrameworkToProject(target, "MessageUI.framework", false);
		pbxProject.AddFrameworkToProject(target, "Accounts.framework", false);
		pbxProject.AddFrameworkToProject(target, "Social.framework", false);
		pbxProject.AddFrameworkToProject(target, "AddressBook.framework", false);
		pbxProject.AddFrameworkToProject(target, "AddressBookUI.framework", false);
 
		File.WriteAllText(projectPath, pbxProject.WriteToString());
	}
}

別の用途にも使えるので、覚え書きです。

Unityでメールを送信するアプリがAndroidで動かない問題

0
Filed under Unity
Tagged as ,

Unityで作ったアプリでメールを送信するコードを書き、Unity Editor上では動いているのだが、Androidでは送信されない、という問題が発生しました。
(検証バージョン Unity 5.6.1p3)

.NET 2.0にする

Unityからメールを送る仕組みは、SmtpClient, MailMessage 周りのクラスを使うと実装できます。
これらのクラスを使ってUnity Editor上では送信できるようにはなったのですが、Androidにいれてみるとメールを送信できない、という問題にハマりました。
結論から書くと、下記ページを参考に、Player Settings内にある、Configurationの、Api Compatibility Levelをいじると直るようです。

■参考URL:Sending email on android device | Unity Community
https://forum.unity.com/threads/sending-email-on-android-device.198795/

Unity Player Settings Configuration .net 2.0 subset
こちらを参考に「.NET 2.0 subset」となっている場合「.NET 2.0」にすると、あっさりと動くようになりました!

UnityにTeddyが来た!!

0
Filed under Unity
Tagged as ,

Unityのアセットに「Teddy」が来た!!

Teddy

Teddyとは、約20年前に話題になったCGのモデリングプログラムです。
3DCGのモデリングは難しい、というところに「輪郭を描けば立体化される」という画期的な仕組みです!
東大の五十嵐健夫教授(当時はどうだったかな)の研究室でつくられ、windowsで動かして「おー!」と叫んでいました。
http://www-ui.is.s.u-tokyo.ac.jp/~takeo/teddy/teddy-j.htm
しばらくして、そのアルゴリズムが組み込まれ、販売されたPlayStation2用のゲームが「ラクガキ王国」↓

PC/Mac用ソフトとしては「マジカルスケッチ 3D」として販売されています。

Unity Asset!

そんなTeddyが、UnityのAssetとして帰ってきました!

これは基本的にモデリングが出来ないUnityにおいて、画期的なアセットになると思います!
しかも、Unityエディタ上で使えるだけではなく、Runtime APIもあるので実行時にも使えることになります!!
これで$30は安い!(+消費税がかかります)
「俺のラクガキ王国」が作れちゃう!!?

今日のUnityお勧めアセット!

0
Filed under Unity
Tagged as ,

これはいい!というアセットを見つけて感動したので、シェアします!

スマホアプリ製作ならこれ!

Unityを使ってスマホアプリをつくる人も多いと思いますが、そのUIは、Unity GUI、通称UGUIを使って実装すると思います。
最近はフラットデザインが流行ということもあり、素材無くてもベタな色だけでデザインが出来てしまいますが、
「角丸のウィンドウとか出そうと思ったら、ちょっと面倒。。」
と思ってたときに見つけたのがこのアセットです!

Procedural UI Image

UGUIのImageを拡張したようなもので、きちんとEditor上でパラメータを設定でき、見た目を調整できるので、普通のパーツと何ら変わらないUIパーツです!

Imageを角丸にしたり、ボーダーのみの描画をできるものなんですが、シェーダーで書かれているのでリソース増大も無いし、クリーン!

ホント、これは$15だけど、サクッと買っておきました!
そして早速、制作中の製品で使っています!
速度低下が気になるゲーム系コンテンツでないなら、問題ない速度だと思います!

使ってみて

一点だけ不満が出てきた。このProcedural UI Imageで出来た形(角丸矩形)でImageをMaskしても、角丸が適用されないことがわかりました。。
うーむ。。惜しい!

マウスコンピューター/G-Tune