01 «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.» 03

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

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

 

【ハルシオンブログ】AudioSourceの音量さわったら音のフェードアウトができたよ。 

こんにちは。坂内っす。

Unityで音を鳴らす際に、AudioSourceを使用しています。
サウンドマネージクラスを使っているので、AudioSourceは全然見てなかったんですよね。

簡単にAudioResourceさわれるようなので、ちょこっと紹介。

AudioSource audio;

①ループありなし。
こちらは単純に音楽がループするかどうか

audio.loop = true;  ループあり
audio.loop = false;  ループなし

②ミュート
音を消す。
音は再生されているため、ミュートを外すと途中から音がなります。

audio.mute = true;

③ピッチ(再生速度)
音の早送りとかができる。
-3 ~ 3

audio.pitch = 1.5f;

④ステレオパン
2Dサウンドの左右の位置。
-1 ~ 1
-1 : 左
0 : 真ん中
1 : 右

audio.panStereo = 0.1f;

あ、でもこの辺ってAudioSourceのInspectorで触れますね。

●フェードイン・フェードアウトを簡単に実装する方法。

DoTweenが入っていれば、簡単にフェードができます。

audio.DOFade(0f, 1f).SetEase(Ease.Linear);

これで「1秒かけて、音量を0にする」フェードが完成です。

って感じで、Audio簡単に触れますね。

それでは あでゅ~ノシ

P.S フェードアウトを 「audio.DOFade(0f, 1f).SetEase(Ease.Linear);」でやると、なんか音が0になった後にまた音がなりだしたので、以下の方法でやったらちゃんとできました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
DOTween.To(
() => volume.BGM,
(x) => volume.BGM = x,
0f,
2f
);
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
スポンサーサイト

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】今年最後のブログっす。Unity2017.3でAndroidビルドできなくなったけど解決した話!!! 

メリークリスマス!!
毎年恒例一人でなにもないクリスマスが終わりました。坂内です。

スイマセン。
これが今年最後のブログになります。

今年もアプリ、ゲーム開発関連の色んな方に絡んで頂きありがとうございました。
来年も懲りずにアプリを作っていこうと思ってます。

さて、Unityのバージョンを、「Unity2017.3」に変えたんですが、早速Androidのビルドができないエラーに悩まされています。

エラーは3つ。

Error building Player: CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. 
C:/Users/xxxxxxx/AppData/Local/Android/Sdk\tools\bin\avdmanager.bat list target -c

stderr[
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.AvdManagerCli.parseSdk(AvdManagerCli.java:328)
at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:204)
at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:195)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
]
stdout[

]
exit code: 1


CommandInvokationFailure: Unable to list target platforms. Please make sure the android sdk path is correct. 
C:/Users/xxxxxx/AppData/Local/Android/Sdk\tools\bin\avdmanager.bat list target -c

stderr[
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.AvdManagerCli.parseSdk(AvdManagerCli.java:328)
at com.android.sdklib.tool.AvdManagerCli.run(AvdManagerCli.java:204)
at com.android.sdklib.tool.AvdManagerCli.main(AvdManagerCli.java:195)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
]
stdout[

]
exit code: 1


UnityEditor.BuildPlayerWindow+BuildMethodException: 2 errors
at UnityEditor.BuildPlayerWindow+DefaultBuildMethods.BuildPlayer (BuildPlayerOptions options) [0x0020e] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:181
at UnityEditor.BuildPlayerWindow.CallBuildMethods (Boolean askForBuildLocation, BuildOptions defaultBuildOptions) [0x00065] in C:\buildslave\unity\build\Editor\Mono\BuildPlayerWindowBuildMethods.cs:88
UnityEditor.BuildPlayerWindow:BuildPlayerAndRun()


よく見るやつですね。
AndroidSDKのToolsがなんちゃらかんちゃら。

あれー?一昨日までつかってたUnity 2017.1.1f1だと普通に動いていたのに...

解決しました!!!!

今までは、AndroidStudioのtoolsに「SDK Tools, Revision 25.2.5 」のtoolsを上書きして使えていました。

今回のUnity2017.3では上書きではダメになったっぽい??

今あるC:\Users\YourUsername\AppData\Local\Android\sdk\toolsフォルダを別名にリネームして、SDK Tools, Revision 25.2.5のtoolsをC:\Users\YourUsername\AppData\Local\Android\sdk\に置けば動くようです!

[参考URL]
https://answers.unity.com/questions/1323731/unable-to-list-target-platforms-please-make-sure-t.html

解決してくれた@yusekisekine さんありがとう!!!

ということで、気持ちよく新年が迎えそうです!


それではまた来年!あでゅ~ノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】System.DateTime.Nowを使っててあれ??てなったよ・・・ 

こんにちは。
大坂です。

ずっと天気が悪いですね。
あまり出かけないからどうでもいいといえばどうでもいいんですが…。

さて今週もちょっとしたネタですね。
タイトルの通り「System.DateTime.Now」を使ってて嵌ったお話です。

現象としては「System.DateTime.Now」を使ってるのに端末で見ると「System.DateTime.UtcNow」と同じ時間が取れてる!?
って現象です。

Unity上で見ると大丈夫なんですよね。
ということでUnityで出したログ。


はい、普通に「System.DateTime.Now」が「System.DateTime.UtcNow」の+9:00されてますね。
続いて端末(Android)にインストールして出したログ。


「System.DateTime.Now」と「System.DateTime.UtcNow」が一緒ですね。
ログはとっていませんがiOSでも同じ結果になります。

解決策というかなんというか。
ScriptingRuntimeVersionが「Experimenta」で実機に移すと同じになるようでした。
ということで、「Stable」に変更して再確認。
ここの部分ですね。


変更して、一応Unityのログをもう一回

まぁ大丈夫ですよね。

続いて端末のログ。


ちゃんと「System.DateTime.Now」が「System.DateTime.UtcNow」の+9:00されましたね。
作ってるゲームで上に時間を出してるんですが、そこの時間がUTCとなっててちょっと嵌りましたとさ。

ではでは、今日もこの辺でノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】ボタンを押しっぱなしにして処理を連続で行いたい場合とかね 

こんにちは。
大坂です。

さてはて今週も木曜日です。
なんかどこにでもあるネタですが。
押しっぱなしにして処理を連続で行いたい場合なんかの時ね。

まぁEventTriggerを使ってフラグ立ててUpdateで処理を呼び出すだけなんですけどね。

とりあえずこんな感じのコード。
    public Text text;

// 押したフラグ
bool longTapFlg;
// 押してから処理を連続で流すまでの時間
const float LONG_TAP_TIME = 1f;
// 時間のカウント用
float longTapCounter;

public void OnBtnDown() {
// ボタンを押した時にフラグを立てる
longTapFlg = true;
}

public void OnBtnUp() {
// ボタンを離した時にフラグを落とす
longTapFlg = false;
// 時間のカウントを初期化
longTapCounter = 0;
}

public void UpdateText() {
// 適当に更新する処理
counter++;
text.text = counter.ToString();
}

void Update() {
// フラグが立ったら時間をカウント
if(longTapFlg) {
longTapCounter += Time.deltaTime;
// 設定した時間を越えたら処理をさせる
if(LONG_TAP_TIME <= longTapCounter) {
UpdateText();
}
}
}


あとは適当なオブジェクトにEventTriggerを付けて設定してあげれば行けますね。
今回はボタンにつけてます。
1クリックの処理もしたいときはボタンもつけてボタンのOnClickにも処理させたいのを付けておくとできますね。
こんな感じ。


で、動かしたのはこんな感じ。


何となくそれっぽく動いてますね。
今日もこれで終わりです。

ではまたノシ

Category: Androidアプリ紹介

tb 0 : cm 0   

【ハルシオンブログ】RPGも作るけど、ポケガも何とかしないとね・・・ポケガ放置してほんとすいませんorz 

おこんにちは。坂内っす。

次のアプリでTextMeshProを使おうとしたら、エラーがでるんですよね。
今使ってるUnityは「Unity 2017.1.0f3」なんですけどね。

で、次のバージョン?Unity2017.1.0b1とかで直るみたいなこと書いてたんですが、TextMeshPro自体使うのか怪しくなってきました・・・

なんかUI周りでいいアセットとかないですかねー
今まで全然アセットとか使ってこなかったので、いいアセット知ってる方いたら教えてちょ!

なんかこのアセット使うとこんな感じのことができるんすよ。的な感じでいいんですが・・・

あ、ネタがないんで、ポケットガールの話を1つ。

[宣伝]
ポケットガール
女の子を育てるシミュレーションゲーム
http://halcyon-system.com/pokega/

最近こんなメールをユーザ様から頂きました。

[一部抜粋]
「最近ポケットガールの大幅なアップデートが無くて寂しいのですが。
・・・・・・

私は2も好きですけど、1の方が好きなんです」


うわああああああああああああああああ ありがとうございますううううううううううううううう!!!!

まだまだポケットガール1も人気でうれしいっす!
ってか、2より1のが人気あるんすよね・・・・


ただ、1には引き継ぎとかないので、不便なんですよね。
ほんと思います。

これは是非対応したいのです!

ちょっとポケガ1が古いUnityで作られてて、新しいUnityにすると一部の何かが動かなくて触れないのも事実。

これは、ちょっと時期を見てポケガ1、2共にアップデートをしたいと思います。

1にはできれば引き継ぎ機能もいれたいっすね。
NCMBとかでやってみようかな。

ちょっと、1の方も色々手いれて復活させたいです!

ポケットガールファン(いる?)の方、もうしばしお待ちください!

今作ってるRPGも進めないといけないし、色々と・・・・もう頑張るんば!

今後もハルシオンをよろしくお願いしますううううう!

お金ないいいいいい Entyでもやろうかな?

Category: Androidアプリ紹介

tb 0 : cm 0