FC2ブログ
    09 «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.» 11

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

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

     

    【Unity】VisualStudioのブレークポイントを使ったデバッグ。あと2か月で年末なんですね。今年も年越し飲み初詣にいこう! 

    おはようございます。
    今日で10月が終わってしまいます。
    明日から11月ですか…あと2か月、まじで年末っすね!

    今年もなんとか食べていけてないけど、生きてます。

    さて、Unityでデバッグする方法はいくつかあると思いますが、その中の1つであるVisualStudioでブレークポイントを置くやり方をφ(`д´)メモメモ...しておきます。

    今までは基本的にMonoBehaviourを継承したクラスを使用していたため、Debug.Log等で変数の中身見てたんですが、MonoBehaviourを継承しないクラスを使用した場合などには、VSのデバッグ使う方が楽ですね。
    ただ、たまにUnityが落ちたりしますが・・・・

    やり方は簡単です。
    ①止めたいステップでF9を押す。


    ②Attach to Unityを押す。



    ③Unityで実行する。


    上記状態でUnityにて再生を行うと。


    こんな感じでブレークポイントを設定した行で止まります。


    F10を押すと次の行に行き、F5を押すと、次のブレークポイントまで飛びます。

    んで、実際に変数aに何が入っているかをみたい時は、カーソルをaにもっていくと中身が見れます。


    また、変数aを右クリックし、「Add Watch」を押すとWatchウィンドウに常に中身が見れるようになるので、変数の変移などはWatchに入れておくといいかもしれません。


    このデバッグ方法は、もちろんMonoBehaviourを継承しているクラスでも使用できるので、うまく使うとデバッグが楽になりますね!
    ちなみに、Watchウィンドウの方の値を手動で変えちゃうこともできるんです!
    これでランダムで作った変数であっても自分が好きな感じに変えてテストができます。

    ということで、今日は簡単なデバッグ方法でした。

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【Unity】珍しくdoubleなんて使ってMathが使いたかった。 

    こんにちは。
    大坂です。

    昨日は暑かったですが、今日は涼しくて過ごしやすそうですね。
    週末の朝晩はかなり冷えて来るらしいので気を付けてくださいませ。

    ずっと言ってますが、ネタがありません…orz
    小ネタとも言えないネタで今週も終わりです。

    小数点ありで「float」じゃ桁が足りなかったので「double」を使って作ってたんですけど、
    Unityのデフォルトの「Mathf」はdoubleを扱えないので「Math」を使いたかったって話。
    方法は
    「using System;」
    をするだけなんですけどね…。

    これで無事Mathが使えました!
    わざわざ書くようなことじゃなくてほんとごめんなさい!

    では今週もこれで…
    また来週…

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    ポケガ2のASO対策をしてみたよ。すた子ちゃん(StarGarage様)すげーーーー!ASO効果ばっちしやん!金になってないけど(ボソッ 

    おはようございます。だいぶ寒くなってきましたね。
    今日も隣が工事で家がずっとガタガタ揺れてます。坂内です。

    先週末から鳥取で地震が続いていますね。
    鳥取の方々お気を付けください。

    そういえばポケットガール~魔王を狩るモノ~に先月ASO対策をしてみました。
    もちろんiOSの方はDL数ないんで、Androidの方だけですが。

    【検索結果】
              ASOやる前  ASOやった後
    育成 少女       24位     1位
    幼女 育成       24位     1位
    育成ゲーム 無料   ランク外    12位

    等々。

    検索順位はすっごい上がりました。

    ただ、検索順位は上がったものの、ダウンロード数はほぼ変化なし。
    育成シミュレーション界隈がお葬式ムードなんでしょうか?
    なんか全然お金になりません。

    スマホの小さい画面でシミュレーションするというのが、やっぱり敬遠されるんでしょうかねー
    どこぞのプリン●スメー●ーもおおコケしてますし。(あれはゲームの仕様が悪い)

    ジャンルミスった感が半端ないですが、これからもポケガは頑張っていきたいと思っております。

    ということで、この度はStarGarage様(https://twitter.com/ASO_iOS_Android)にお願いした結果でした。
    ASOという面では凄い効果があったと思います。
    StarGarage様にASOをお願いしてみたい方がいましたら、相談にのりますよ!
    (どんな感じだったのかとか、利用した人に聞きたい等ありましたら)

    ということで、ネタがない感半端ないですが、今日はこれにて!

    あでゅ~ノシ

    Category: Androidアプリ紹介

    tb 0 : cm 1   

    Appleのライセンス更新、そしていまだXcode6.3とか使ってるわけですが… 

    こんにちは。
    大坂です。

    Appleのライセンスが切れてて新しいアプリの登録ができなく、ライセンスを購入しましたが、
    税込みで12,744円ってなんか値上がりしてますかね…
    高いですね…orz

    ライセンス更新したのでその辺の作業をいろいろしながらアプリのコンパイルとか試してて、
    タイトル通りいまだにXcode6台を使ってるんですが…。
    Xcode6はiOS8までしかサポートしてないので実機のiOSが9以降になると直接入れられなくなってデバッグで困ったりします。

    で、小ネタなんですが。
    Xcode7以上を入れてる条件付きで解決はできます。(Xcode6との共存もできますし…)
    Xcode7入れてるなら7で対応しろとか言わないでくださいね!(ぇ

    Xcode7で実機を認識させてからXcode6にもどして転送してあげるとうまくいきます!

    以上なんですが、こんなことする必要がある人がいるのかは謎です。
    どうにもMacはほとんど触らないのでバージョン上げたりの作業をなかなかしてません…。

    とはいってもいつかはバージョンをあげないといけないですよね~
    Xcode8も出てますし、一気に上げて色々慣れておけばまたしばらく大丈夫ですかね?

    Appleは毎年お金取られるし、いろいろ環境も変えて行ったりしないといけなかったりで、ほんと面倒ごとが多いですよね…

    なんだかよくわからないブログになりましたが、これだけですよ。
    ネタは一行…

    ではまた来週ノシ

    Category: その他日記

    tb 0 : cm 0   

    【Unity】こんにちは。最近自社開発なんもしてないんで、最近触ったDOTWeenでちょっとはまったやつメモっといたよ! 

    こんにちは。坂内っす。
    寒いっす!さむいっすよー!
    今日寒いですなー!

    あ、そうそう最近DOTWeen触ってるんだけど、いまいちiTweenに慣れてたもんで分かりにくかったところを、メモ的に書いておきます。

    まずは、uGUIコンポーネントのフェード系について。

    【DOTWeenでuGUIオブジェクトのフェード】
    Text txtAAA = GetComponent();
    DOTween.ToAlpha(() => txtAAA.color,x => txtAAA.color = x,1,1f).SetLoops(-1,LoopType.Yoyo);

    テキストじゃなくてもImageでもよか。
    SetLoops(-1,LoopType.Yoyo)を使うことで、フェードインフェードアウトの点滅ができます。

    【DOTWeenでuGUIオブジェクトの回転】
    RectTransform trans = GetComponent();
    trans.DOLocalRotate(new Vector3(0f,0f,720f),speed,RotateMode.FastBeyond360);

    回したいオブジェクトのRectTransformを使って回します。
    3個目の引数「RotateMode.FastBeyond360」を入れないと、回りません。
    RotateMode.FastBeyond360の意味は「0から順番にターゲット角度まで回る」のようです。
    RotateMode.FastBeyond360を入れないと、「0度から0度(720度=2周して0度)へ回る」って意味になるらしく、一切回りません。
    ここでちょっとハマってしまいました。

    って感じで、この二つの処理をDOTWeenでやろうと思ってはまったので、メモしておきます。

    今日はこんなところで、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【Unity】Resourcesフォルダに入れてある画像をSNS連携に使いたかった。 

    こんにちは。
    大坂です。

    今日も寒いですね…。
    週末あたりはまた暖かく(暑く?)なるみたいですが、また気温差が激しくて大変そうですorz

    題名の通りのことをしたくなった時があったので、やってみた感じの記事です。
    基本は連携するときのスクリーンショットでいい気はするんですけどね。
    連携自体はいつも通りSocial-Connectorを使ってます。
    その辺の使い方は今までの記事で書いてますので、興味があれば見てみてくださいませ。

    ◆スクリーンショットを撮って連携するタイプ
    http://halcyonsystemblog.blog.fc2.com/blog-entry-145.html
    ◆StreamingAssetsの画像を使ってるタイプ
    http://halcyonsystemblog.blog.fc2.com/blog-entry-251.html
    ◆一応設定の注意点?
    http://halcyonsystemblog.blog.fc2.com/blog-entry-168.html

    で、今回の記事ですが…結局強引な方法な気はしますけど実装できたので、コードです。
       IEnumerator ShareTest() {
    // 書き込み先のパスの指定
    string path = Application.persistentDataPath + "/image.png";

    // ResourcesフォルダからTexture2D形式で画像を取得
    Texture2D tex = Resources.Load<Texture2D>("sample");

    // byte配列に変換
    byte[] img = tex.EncodeToPNG();

    // ファイルの書き込み
    File.WriteAllBytes(path, img);

    // 一応書き込む時間
    yield return new WaitForSeconds(0.5f);

    string msg = "ツイートするよ";
    string url = "http://halcyon-system.com";
    SocialConnector.Share(msg, url, path);
    }

    こんな感じですかね。
    あ、画像の設定で「Read/Write Enabled」にチェック入れる必要がありますので、動かなかったから確認してみてください。
    これです。


    では今週もこれにて。
    また来週ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【Unity】たまにはちゃんとUnityの話をね・・・今日はドロップダウン(プルダウン)の簡単な使い方だよ! 

    こんにちは!坂内っす。
    なんか今日すっごい寒いですねー
    暖かかったり寒くなったりで体調崩す人が多そうです。
    みなさん体に気を付けてくださいね。

    さて、Unityのお話です。
    そういえばWeb開発をしていた時はよく作ってた「ドロップダウン」とか「プルダウン」とか言われてるやつ。
    uGUIにも標準にあったんですね。

    ここにあります。


    で、デフォルトではこんな感じのものが作られますね。



    それでは、ドロップボックスのコンポーネントを見てみましょう。


    ●Interactable
     他のuGUIコンポーネントにもある通り、ドロップダウンの動きを止めるやつですね。
     これのチェックを外すと以下の通りグレーアウトします。


    ●Transition
     こちらも他のuGUIにありますね。
     このオブジェクトがアクティブになるときのアニメーションとか、色とかを変えれるやつです。
     
    ●Template

     テンプレート。なんのテンプレートかというと、上の絵でいうところの、「Dropdown List」のそれぞれのItemの見た目とかを設定するところなんでしょうかね。
    Template>Viewport>Content>Item>Item Checkmarkを消すと、以下のようにチェックボックスがつかなくなります。


    ●Value
     現在選択されているアクティブアイテムのNO

    ●Options
     ここがドロップダウンの中身。
     Imageについては後述。
     
    【ドロップボックスの選択肢に画像を載せる】

    こんな感じでドロップボックスに画像を使いたい場合は以下のようにすると使えるようです。
    ①選択されているアクティブの絵を出したい場所にImageを追加する。
    ②Optionsのそれぞれの選択肢のNone(Sprite)の場所に表示したいイメージをアサインする。


    って感じで使えますね!

    簡単にですが、どのドロップボックスのアイテムが選択されているかを取得するコードを書いてみます。
    using UnityEngine;
    using UnityEngine.UI;
    using System.Collections;

    public class DropDownTest : MonoBehaviour {

    public Dropdown drpTest;

    public void OnChangeDropdown() {
    Debug.Log(drpTest.value);
    }
    }

    ドロップダウンのOnValueChangeのところに、上記コードのOnChangeDropdown()をアサインしておけば、ドロップダウンが変更されたときに取得できますね!

    ってことで、今日はuGUIのドロップダウンについてでした!

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【Unity】AndroidとかiOSでの動画再生ねぇ… 

    こんにちは。
    大坂です。

    今日暑いなーっと思ったら30度超えるんですね…orz
    明日からは涼しくなってくるみたいですが。

    さて今週の話題ですよ。
    結構前にUnityで動画再生するのを調べたときに「Movie Textures」とか使うんだーっと思ってみてたら、
    AndroidとiOSはサポートされてなくてそのままやめてたんですけど、
    最近見てたら「Handheld.PlayFullScreenMovie」とかっていうので再生できるんですね。
    詳細はUnityのマニュアルページにあります。

    Unityで、「Assets」-「StreamingAssets」フォルダ内にファイルを突っ込んで使えばいいみたいです。
    再生はこんな感じ。これも書いてありますけどね。

    Handheld.PlayFullScreenMovie ("sample.mp4", Color.black, FullScreenMovieControlMode.CancelOnInput);


    これで再生自体はできましたね!
    相変わらずAndroidでしか確認してないですけど…

    超短いですけどこれだけです!
    ではまた来週…ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    [Unity]UnityというかC#?Listの配列について。Listの配列なんて使う人すくなそうだけどさ・・・ 

    こんにちは!坂内っす。
    最近は温度差が激しいので風邪に注意しましょう!

    今年ももう10月になりました!
    あと2か月で年末ですか・・・はやいものです。

    最近UnityでListの配列を初期化するときに、「あれ?」って思ったので、簡単にまとめてみました。
    基本のことなんですけどね( ´艸`)

    ★int string等の配列
    // 初期化と代入
    int[] abc;
    abc = new int[5];
    abc[0] = 10;
    abc[1] = 20;

    // 初期化
    int[] xyz = {10,20,30};


    ★int string等の多次元配列
    >// 初期化と代入
    int[,] abc;
    abc = new int[2,3];
    abc[0,0] = 5;
    abc[1,2] = 10;

    // 初期化
    int[2,2] = {
    {1,2},
    {3,4}
    };


    ★ただのList
    // 初期化と代入
    List<t> abc;
    abc = new List<t>();
    abc.Add(new t());


    ★Listの配列
    // 初期化と代入
    List<t>[] abc;
    abc = new List<t>[2];
    abc[0] = new List<t>();
    abc[1] = new List<t>();
    abc[0].Add(new t());
    abc[0].Add(new t());
    abc[1].Add(new t());


    って感じで、やればできました。
    あんまりListの配列とか見ないですよねー
    でも、できることはできるみたいです。

    何かのお役にたてばー

    では あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0