FC2ブログ
    12 «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.» 02

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

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

     

    【ハルシオンブログ】null許容型って使ってますか?全然使ってなかったけど、実は使えたりする?? 

    こんにちは。坂内っす。

    ええ ポケガ3少しずつ進んでます。
    何かしらお見せできればいいのですが・・・・もうちょっとお待ちください。

    さてさて、UnityでNull許容型って使ってますか?
    なかなか使う機会がなく、使ってないのですが、実は使える場所いっぱいあったのでないか?と思ってきました。

    Null許容型ってこんなのです。

    int?

    このintに値が入っているのか、nullなのかを判定するにはHasValueを使います。


    using UnityEngine;

    public class Blog20220124 : MonoBehaviour
    {
    void Start()
    {
    int? aaa = null;
    Debug.Log(aaa.HasValue);

    aaa = 5;
    Debug.Log(aaa.HasValue);
    }
    }



    結果はこのようになります。

    False

    True

    値がnullだった場合はFalseが取れますね。

    「値がnullだったら何もしない。値が入っていたら値x10をする」とかって処理ができますね。

    ということで、null許容型の簡単な説明でした。

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Unity objectってなんでもはいるんですね!からの()キャストとas演算子について簡単基本的メモ 

    こんにちは。坂内っす。

    さて今年も頑張って生きていきましょう!

    ポケガ3は早ければ6月ころにリリースになるかもしれません。
    頑張って作っていきます!

    さて、Unityの小ネタ。

    objectは何でも入れることができますね。(そりゃ一番親ですから


    using UnityEngine;

    public class Blog20220117 : MonoBehaviour
    {
    public class B {
    public int no;
    public string name;

    public B(int value1, string value2) {
    no = value1;
    name = value2;
    }
    }

    void Start()
    {
    object obj;
    obj = 5;
    Debug.Log(obj);
    obj = "あいう";
    Debug.Log(obj);
    obj = new B(10, "なまえ");
    Debug.Log(((B)obj).no + ":" + ((B)obj).name);
    }
    }



    objから取り出す時にintもstringもキャストはいらないが(プリミティブ)、作ったクラスはキャストが必要ですね。

    ちなみに()のキャストと、as演算子がありますが、プリミティブ型にはas演算子は使えません。


    void Start()
    {
    int a = 100;
    double b = a;
    Debug.Log(b);

    a = b;
    Debug.Log(a);
    }



    a = b;
    でエラーになりますね。

    なんのエラーかというと、
    「桁数が大きいものから、小さい物への変換は桁落ちが起きるので、明示的に桁落ちしてもいいよというキャストが必要」
    といったものぽいです。

    明示的にキャストをしてやれば入ります。


    void Start()
    {
    int a = 100;
    double b = a;
    Debug.Log(b);

    a = (int)b;
    Debug.Log(a);
    }



    プリミティブのas演算子もだめです。

    a = b as int;   X

    本当にメモ的なもので、あんまり困ることではないですが、基本のことなので覚えておきましょ。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Swichって型で分岐できるんですね。 

    こんにちは。
    大坂です。

    Swichって型で分岐できるんですね。
    知らなかったです。(使うかはわかりませんが)

    public void TestMethod(object obj) {
    switch (obj) {
    case int:
    break;
    case string:
    break;
    case GameObject:
    break;
    }
    }

    エラーがでたらpreview版にアップグレードしてあげたら使えます。




    短いですがこれにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】VisualStudioで定義に先に飛ばずに定義の内容を確認したいとき 

    明けましておめでとうございます。
    今年もハルシオンブログをよろしくお願いします。

    ということで新年一発目のブログです。

    では早速。
    VisualStudioで関数でF12を押したり、Ctrl+クリックすると定義の場所に飛べますよね。
    それでもいいのですが、今見ているコードのその場で定義を確認する方法があります。

    関数でAlt+F12を押すか、右クリックして「定義をここにクイック表示する」を選択。


    こんな感じで見ているコードの下に定義が表示されます。


    ちょっと確認したいときなんかに便利ですね。

    ではではこれにてノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】DOTweenの一時停止、再開、リスタート、コンプリート 

    こんにちは。
    大坂です。

    DOTweenで一時停止、再開、リスタート(最初から再生)、コンプリート(最後に飛ばす)の方法。

    Tweenerを使ってこんな感じでやってます。

    iTweener tweener;

    private void Start() {
    tweener = tran.DOLocalMoveX(200, 5f);
    }

    // スタート、再開
    public void OnclickPlay() {
    tweener.Play();
    }

    // 一時停止
    public void OnclickPause() {
    tweener.Pause();
    }

    // リスタート
    public void OnclickRestart() {
    tweener.Restart();
    }

    // 最後に飛ばす(スキップとのときなんかに便利)
    public void OnclickComplete() {
    tweener.Complete();
    }


    それぞれのボタンに設定して、ボタンを押してみた結果。


    Pause:一時停止
    Play:アニメーションの続きから再生
    Restart:アニメーションを最初から再生
    Complete:アニメーションの終りに飛ぶ
    という感じで動いてますね。

    Pause、Playについては以前も記事がありましたね…。
    一応ということで。

    こんなことができるよと紹介でした。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0