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

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

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

     

    【ハルシオンブログ】RectTransformの値が変わったのを検知する 

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    RectTransformの値が変わったのを検知方法です。

    「UIBehaviour」を継承して「OnRectTransformDimensionsChange」を使うと検知できるようになります。

    こんな感じですね。

    protected override void OnRectTransformDimensionsChange()
    {
    Debug.Log("RectTransformの値が変更されました");
    }

    [Button]
    private void TestMedhod()
    {
    gameObject.GetComponent<RectTransform>().sizeDelta = new Vector2(1f, 1f);
    }


    TestMedhodを実行してあげるとちゃんとログが出ます。


    RectTransformの値が変わったときに何か処理をしてあげたいときに使えそうですね。
    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】横浜ゲームダンジョンにいってきたよ! 

    こんにちは。坂内っす。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    2023年8月27日は横浜ゲームダンジョンの日でした。
    https://tokyogamedungeon.com/




    みなさん素敵なゲームつくりまくりですね。

    いくつかのブースお邪魔したので、写真はりはり。

    紅香さん(@maroonluxe)のブース。
    「サムライライダー」
    ほんと写真撮るの下手すぎる。(お客さんがいると、なかなか撮れないと言い訳をしておく)



    https://www.youtube.com/watch?v=MfziMShtg38

    ノベルティー頂いたよ!



    newfrontiaSoftwareさんのブース
    ホロライブのぺこら二次創作ゲームらしい


    アドベンチャーゲームぽい?


    popさん(@twt_paul)のブース
    「Million Depth」
    人多くて全然写真取れなかった!大人気ブースでしたよ



    steamページももうあるようです!興味のある方はどうぞ!
    https://store.steampowered.com/app/2555950/Million_Depth/


    トモぞヴPさん(@TomozoP)のブース
    「スゴイツヨイトウフ」


    ここも大人気ブースだった(?)
    ともぞうさんのセンスが光るゲームです!
    https://twitter.com/TomozoP/status/1688922208620744704


    墓場文庫さん(@hakababunko)のブース
    「和階堂真の事件簿 TRILOGY DELUXE」
    Room6さんが展示をしていました。




    どこも人気だなぁと
    和階堂真シリーズも大人気なゲームなので、ぜひ遊んでみてください!


    そして、お隣。
    6th Sense Gamesさん(@6thsensegames)のブース
    「イノウノカルテ」



    こちら講談社ゲームクリエイターズラボの作品になっているようです。

    カウンセラーとなって異能を秘めたこども達と対話し、情報を引き出しカルテを埋めていくホラーADV。
    https://twitter.com/6thsensegames/status/1694703462939054445

    とっても気になるタイトルですね!


    そして、最後に訪れたブースはこちら。
    Achamothさん(@Achamoth_cr)のブース
    「SpookySalvage」




    achamothさんの作る独特な世界観がすごい。
    ロンドン幽霊屋敷探索ADVらしいっす。
    これまた気になる1本ですね。


    ということで、横浜ゲームダンジョン遊びに行ってきました。
    次はデジゲーかな?

    では、あでゅ~ノシ

    Category: その他日記

    tb 0 : cm 0   

    【ハルシオンブログ】UnityEditorでテスト用に特定のキーを押したときにTimeScaleを変化させる 

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    UnityEditorで実際に動かしてテストする際にゲームを高速で動かしたい時、キーボードの特定のキーでTimeScaleを変えられるようにしておくと便利です。

    こんな感じで書くとスペースを押している間にタイムスケールが10になるので、
    テストをしていて早く進めたいところとかあるときに10倍で進んで便利になります。

    bool isUsing = false;
    float debugPrevTimeScale = 1f;

    private void Update()
    {
    if (Input.GetKey(KeyCode.Space))
    {
    if (!isUsing)
    {
    debugPrevTimeScale = Time.timeScale;
    isUsing = true;
    }

    Time.timeScale = 10;
    }
    else
    {
    if (isUsing)
    {
    Time.timeScale = debugPrevTimeScale;
    isUsing = false;
    }
    }
    }


    テスト時の時短にもなりますし結構便利ですね。
    ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンUnityブログ】Unityで指定した日の曜日をとる方法。今度の日曜日横浜ゲームダンジョンありますね! 

    お盆休みが明けました。
    今日から通常稼働です。坂内っす。
    今週末の日曜日に横浜ゲームダンジョンがあります。
    遊びにいってきます!

    お暇なときにポケットガール~受け継がれし希望~をダウンロードして遊んでくれると嬉しいです!
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:



    Unityで、指定した日の曜日を取得したりします?

    曜日を取得するのはこんな感じ。


    private void Start() {
    Debug.Log(DateTime.Today.ToString("dddd"));
    }



    こう書けば、こんな結果が出ます。

    月曜日
    UnityEngine.Debug:Log (object)
    Blog0821:Start () (at Assets/Scripts/Blog0821.cs:9)

    月曜日 ってでましたね。

    dを3つにするとこうなります。


    DateTime.Today.DayOfWeek



    private void Start() {
    Debug.Log(DateTime.Today.ToString("ddd"));
    }




    UnityEngine.Debug:Log (object)
    Blog0821:Start () (at Assets/Scripts/Blog0821.cs:9)

    月 だけ。

    日本語で出てるけど、英語で出したい時はCulturInfoというもので、英語化するといいらしい。


    private void Start() {
    CultureInfo en = new CultureInfo("en-US");
    Debug.Log(DateTime.Today.ToString("dddd", en));
    }


    Monday
    UnityEngine.Debug:Log (object)
    Blog0821:Start () (at Assets/Scripts/Blog0821.cs:10)


    ちゃんとMondayになりましたね。

    こんな感じで指定した日の曜日をとることができます。
    (今回はTodayでやったけど、DateTimeで好きな日を指定してとることもできます)


    以上、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】Textureの圧縮形式を変えた時にサイズの変化が見えないとき【Unity】 

    こんにちは。
    大坂です。

    明日からお盆休みの人が多いでしょうか?
    お暇なときにポケットガール~受け継がれし希望~をダウンロードして遊んでくれると嬉しいです!
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    Textureの圧縮形式を変えた時にサイズの変化が見れないときありますよね?
    「Not yet compressed」とかなっているときです。


    サイズを見れるようにするには、[Editor]-[Preference]-[Asset Pipeline]-[Compress Textures on import]にチェックを入れると見れるようになります。


    チェックと入れて処理を待つとサイズが見えるようになっていますね。


    最近でも少し話題に上がったので紹介でした。
    ではまたノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンUnityブログ】UnityEngine.Random.Rangeの基本的なお話 

    今週末からお盆休みが始まります!
    長い人は1週間以上お休みがあるのでは?
    休みどうしようかなぁ・・・・坂内っす。


    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:



    UnityのRandom.Rangeのお話。

    UnityC#でランダムな数値を作りたいときに使うRandom.Rangeについて。

    ①floatとintのランダム数値を取る際の引数に注意
    Random.Range(float min, float max)
     ⇒min(含む)~max(含む)の範囲のランダムなfloatを返す
      Random.Range(1.1, 2.5)
       ⇒1.1~2.5の間でランダム

    Random.Range(int min, int max)
     ⇒min(含む)~max(含まない)の範囲のランダムなintを返す
      Random.Range(2, 5)
       ⇒2~4の間でランダム

    ②seedを設定することで、同じランダムを返すことができる。
    Random.Rangeを行う前に以下コードでシードを設定

    Random.InitState(シード値);

    [Blog20230807.cs]

    using UnityEngine;

    public class Blog20230807 : MonoBehaviour
    {
    void Start()
    {
    Random.InitState(5);
    for (int i = 0; i < 5; i++) {
    Debug.Log(Random.Range(1, 11));
    }
    }
    }



    シードに5を設定。

    実行するとこうなります。

    8
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    2
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    7
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    5
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    3
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    一度Unityを止めて、再度実行。


    8
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    2
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    7
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    5
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    3
    UnityEngine.Debug:Log (object)
    Blog20230807:Start () (at Assets/Scripts/Blog20230807.cs:9)

    同じ8,2,7,5,3の順でランダムをとることができます。

    シードをランダムにすれば、毎回ランダムな数値をとることができます。


    Unityでゲームを作るうえで必ずといって必要となるRandomの基礎知識でした。

    では、あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    【ハルシオンブログ】RectTransformの設定がStretchの時の幅と高さの取得の仕方【Unity】 

    こんにちは。
    大坂です。

    ポケットガール~受け継がれし希望~よろしくお願いします。
    URL(Android):https://play.google.com/store/apps/details?id=com.halcyon.pocketgirl3
    URL(iOS):https://itunes.apple.com/jp/app/id1539553611

    PV:


    RectTransformの設定がStretchの時の幅と高さの取り方のメモです。

    こんな設定しているときです。


    sizeDeltaで試してみる。

    void Start() {
    RectTransform rectTran = GetComponent<RectTransform>();
    Debug.Log("sizeDelta.x:" + rectTran.sizeDelta.x);
    Debug.Log("sizeDelta.y:" + rectTran.sizeDelta.y);
    }


    -200になりますね…。
    それぞれ100ずつパディングしているような形なのでその部分が取れている感じですかね。

    Stretch設定しているときのサイズを取得するときは「rect.width」「rect.height」で取れるようです。

    void Start() {
    RectTransform rectTran = GetComponent<RectTransform>();
    Debug.Log("rect.width:" + rectTran.rect.width);
    Debug.Log("rect.height:" + rectTran.rect.height);
    }



    一応設定を変えてみて確認。


    正しく取れていそうですね。
    Stretchを設定しているときは「rect.width」「rect.height」で取得すれば大丈夫そうですね。
    何かのお役に立てば。ではではノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0