06 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.» 08

ハルシオンシステムの気ままBlog

株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

 

【ハルシオンブログ】制作中だったハクスラの一時凍結と、Unity2018のProBuilderってすごいね!って簡単な紹介。 

今週は北海道いい以外ずっと熱いらしいっすね!
家から出ないようにします!坂内です!

現在作成中のハクスラは…いったん凍結することになりました!(野毛会できまった)

絶対だすからな!ずえーったい出すから!そのうち!

去年の4月頃から始めたプロジェクトですが、呪われすぎてます。
一度お払いにいかねば・・・

今はちょっとお金なさ過ぎ。
受託案件いただきまして。
今の仕様だと何が面白いのか分からない。

等々の理由により、また仕様作り直しから来年あたりやろうかと。
是非その際には、一緒にハクスラ作りたい方いましたら、声かけて頂ければと思います。


さて、Unity2018の目玉の1個にProBuilderというのがあります。
これ、簡単に3Dのオブジェクトが作れるってやつですね。

普段3Dは触らないのですが、どんなものかなーってちょっと触ってみました。

①Window>Package Managerを選択。



②InProgress を Allに変更し、ProBuilderを選択し、Install。



③Tools>ProBuilder>ProBuilderWindowを選択すると、Wizard的なウィンドウがでます。




④好きな形のオブジェクトを作るには、New Poly Shapesを選択し、画面に描画していきます。


はい、こんな感じで、簡単に坂ができました。

さて、玉を上の方において実行すると…



ほーら転がった!

え?もっとちゃんとした形作れって?

そういうの僕のセンスが許さないんで。
こんなことできるよってただの紹介なんで。

ってことで、簡単なProBuilderの紹介でした!

あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】UnityでGradleとProGuardを使ったビルドをしないといけなかった。 

こんにちは。
大坂です。

さて、今日もあんまりネタがないのですが。
タイトルの通りUnityでGradleとProguardを使用してビルドした話。

設定はこの辺をいじればGradleとProguardを使用したビルドになりますね。
使用しているのは「Unity2017.3.0f3」です。




設定すると自動でファイルが作られます。


この方法でビルドしたことがなかったので、色々エラーが出てビルド通すのも大変でしたが、
この辺使い慣れてる人は楽なんですかね?

メモがてらにエラーの対処方法
「Warning:」で止まる場合。
こんなやつね。

Warning: okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement


調べると警告だからProguardのファイルに「-dontwarn」で指定して無視しろっていうのがよく出てきます。
本当に無視だけでいいのかは謎なところもありますが、こんな感じで指定すると「Warning」も消えてきます。

-dontwarn okio.**


あとは既存プロジェクトでこの方法にしたので色々ライブラリが入っていて、Duplicate系のエラーも出ましたが、
この辺はエラーを見て被ってるのを削除すれば対応できました。

で、何とかビルドだけ通すと今度はAdmobがでねぇぇぇぇ!とかって嵌ります(ぇ
調べると難読化しないようにしようねってちゃんと書いてありました。
https://developers.google.com/mobile-ads-sdk/kb/?hl=ja#proguard

Unityでやってると?こんな実機のログにこんなエラーも出るので

AndroidJavaException: java.lang.ClassNotFoundException: com.google.unity.ads.UnityAdListener


追加でこの指定もしました。

-keep class com.google.unity.** {
public *;
}


あとはアドフリくんの動画なんかも使ってましたが、マニュアルを見るとそれぞれの会社の設定のところとかで、
Proguardの設定について書かれているので、設定を追加したら無事動画が再生されました。

やったことない方法でビルドするといろいろ嵌るよね!っていう話とメモでした
ではまたノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】CanvasScalerをいじったら、Androidのタブレットで妹ちゃんが見えなくなった!?なんでやねん! 

こんにちは!坂内です!

大阪で大きな地震があった模様です。
震度6弱の大地震。死傷者もいるらしく、復旧も大変そうです。
知り合い関連はみんな無事ぽいかな?
あとアプリ開発界隈も無事ぽいかな?

さて、本日のネタは、「Canvas ScalerにあるScreenMatchModeを変更したら、Androidの一部の端末(タブレット系)で異変が起きた」です。

事の発端は、今回のバージョンアップでのお話。

今回のバージョンアップ前は、Canvas Scalerの設定は以下のようになっています。


ちょうどこの度私がGalaxyS9+を買い、縦長のスマホが出てきたっていうことで、今回のアプデでは以下のように設定しました。


これが問題の発端。

なんと!タブレットで起動するとこうなってしまうんです!!



ぎゃぁー 横100%でやったから上下が切れてしますんですよね・・・・じゃない!!
妹がいなくなったじゃぁあーりませんか!
これ、消えてしまう原因はちゃんとは把握していませんが・・・

ということで、CanvasScalerの設定を以下にしました。



たぶんこれがベストなんでしょうね。

【公式Canvas Scalerのドキュメント】
https://docs.unity3d.com/jp/530/Manual/script-CanvasScaler.html



ぶっちゃけ、ドキュメントみても全然意味わかりません。

Expandにした結果を簡単に説明すると、「縦横比はそのままで、縦か横のどちらかが画面サイズいっぱい」までスケールって感じですかね。
タブレットだと縦を基準に、縦長端末だと横を基準にスケールしてくれます。

いやー 上下が切れるのはわかるんですが、なんでキャラが見えなく・・・・こればかりは謎ですね・・・

んで、Scale With Screen SizeをExpandにしたら、タブレットではこんな感じになりました。



ということで、今後はExpandでいきますよ!


本日は以上!あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】タップしている間の処理(長押し中の処理)はこうやればできますよね。これで●●ッピーバードも作れちゃうね! 

コンニチハ バンナイデス。

Unityの難しくない技術はハルシオンブログへ。
「あぁこうやってやればいいのか、簡単じゃん」をモットーにやっております。

「へぇ・・こうやるとできるんだ。でもちょっと良く分からないや…」っていう技術的に難しい話題は、ここでは扱いません(俺が理解できないものは記事にしません)


ということで、本日は「タップしている間」のやり方をば。
これ多分以前も書いたと思うんですが、最近また使う機会があったので再度書いちゃいます。

とりあえず、こんな感じでハトを置いてみました。


ボタンを離すと下降し、ボタンを押している間上昇するようなものを作ってみます。

次にハトが動くためのコードをちゃちゃっと書きます。
【Blog.cs】
using UnityEngine;

public class Blog : MonoBehaviour {

public GameObject objHato;

enum HATO_STATE {
UP,
DOWN,
}
HATO_STATE state = HATO_STATE.DOWN;

/// <summary>
/// 押した時の処理
/// </summary>
public void OnTapDown() {
state = HATO_STATE.UP;
}

/// <summary>
/// 離した時の処理
/// </summary>
public void OnTapUp() {
state = HATO_STATE.DOWN;
}

private void FixedUpdate() {
if(state == HATO_STATE.UP) {
objHato.transform.Translate(0f,0.1f,0f);
} else {
objHato.transform.Translate(0f, -0.1f, 0f);
}
}
}


「押している間」というのは、「押してから離すまで」というわけで、OnTapDownが「押した時」、OnTapUpが「離した時」として処理しています。

あとはボタンが押された時と離された時に上記の処理を呼んであげればいいわけです。

では、押された時と離された時の設定をしてみましょう。

始めはボタンとしてオブジェクトを作ったので、こんな感じになっています。



しかし、ボタンコンポーネントには押された時、離された時という判断はできません。
なぜならば、「ボタン」というのは、「ポチっと”押す”+”離す”」の一連の処理のことを指します。
そのため、押す、離すのそれぞれの処理を捕まえようと思っている場合は、一度Buttonコンポーネントを外します。

代わりに、「Event Trigger」コンポーネントを付けます。



EventTriggerではドラッグを始めるや、押す、離すなどの処理を取ることができます。

今回はEventTriggerのPinterDownにOnTapDownを、PinterUpにOnTapUpを指定します。


これで完成!


こんな感じでタップ中の処理を作ることができます。

また、今回はボタンのようなものを準備しましたが、「画面のどこをタップしてもおk」という場合は、EventTriggerを使わない方法もあります。

【Blog.cs】
using UnityEngine;

public class Blog : MonoBehaviour {

public GameObject objHato;

enum HATO_STATE {
UP,
DOWN,
}
HATO_STATE state = HATO_STATE.DOWN;

/// <summary>
/// 押した時の処理
/// </summary>
public void OnTapDown() {
state = HATO_STATE.UP;
}

/// <summary>
/// 離した時の処理
/// </summary>
public void OnTapUp() {
state = HATO_STATE.DOWN;
}

private void Update() {
if(Input.GetMouseButtonDown(0)) {
OnTapDown();
} else if(Input.GetMouseButtonUp(0)) {
OnTapUp();
}
}

private void FixedUpdate() {
if(state == HATO_STATE.UP) {
objHato.transform.Translate(0f,0.1f,0f);
} else {
objHato.transform.Translate(0f, -0.1f, 0f);
}
}
}


Update処理にあるInput.GetMouseButtonDownとGetMouseButtonUpが、「画面をタップしたとき」「画面から指を離した時」の処理になります。


以上で本日の記事終わり!あでゅ~ノシ

Category: 開発日記(Unity)

tb 0 : cm 0   

【ハルシオンブログ】今週もiOSでちょこちょこと。 

こんにちは。
大坂です。

関東も梅雨入りしたみたいですね。
今日は起きたら雨やんでましたが。。

さて、今週もネタがないのでiOS対応ででちょこちょこ。
特に役には立たなそうですが。

最近Admobの「GoogleMobileAds.framwork」で「GLkit」と「MessageUI」を入れてなくてLinkerError出るのが数回。
毎回Xcodeで追加するのも面倒なので、Unityで「Assets」-「Plugin」-「iOS」に「GoogleMobileAds.framwork」を突っ込んで、
選択するとこんなのがあるのでチェックしてあげてビルドすると自動で追加されるよって話。

2018-06-07 1

もう一個、こんなエラーが出た時の対策。
2018-06-07 2

なんか「IPods-Unity-iPhone」のライブラリがないって言われてるね。
見てみるとそれっぽいのはあるんですけどね。

2018-06-07 3

でちょっと調べたらこいつ消したらいけるような感じだったので消してクリーンしてみて再ビルドしたら行けました。

はい!今週もこれだけです。
またノシ

Category: 開発日記(Unity)

tb 0 : cm 0