FC2ブログ
    04 «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.» 06

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

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

     

    【ハルシオンブログ】Mathf.Clampって使ってますか?ゲーム作ってると意外と使うやーつ。 

    こんにちは。坂内っす。
    もうだいぶ春になりましたね。
    暖かい日が続いています。
    このまま夏になればコロナも少しは落ち着いてくるんでしょうか・・・


    Unityでゲームを作る上で、Mathf.Clampって結構使いますよね?

    簡単なMathf.Clampのお話をしようと思います。


    Mathf.Clampとはなんでしょうか?
    【リファレンス】
    https://docs.unity3d.com/jp/current/ScriptReference/Mathf.Clamp.html

    最小と最大の値を設定し、その範囲内に値を制限するやつです。

    「HPは0以上でマイナスにはならない」や、「攻撃したときのダメージは攻撃力ー防御力だけど、0以下にはならない」とか、●以上●以下という制限をするときに使います。
    (0以上とかばっかりでわかりにくいかも)


    int attackBase = 100; // 攻撃力は100
    int def = 100; // 防御力は100

    // 攻撃力はベース攻撃力±ブレが2割
    int atkPower = attackBase + Mathf.Round(Random.Range(-attackBase * 0.2f, attackBase * 0.2f));
    int damage = Mathf.Clamp(atkPower - def, 0, 99999);


    最大ダメージはいい感じにするとして、こんな感じの計算式にすると、ダメージが0未満にはならないので、防御力のほうが高いときにHPが回復といったことがなくなります。

    ほかにもキャラの移動の際に、画面端を考慮した場合に、X座標がいくつからいくつまでしか移動できない等の制御にも使えますよね!

    ゲームは結構●~●までの制限というのがあると思うので、使う機会は色々ありそうですね!

    ってことで、今日はこれだけ!

    あでゅ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0   

    コメント

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/786-e47b4c7a
    この記事にトラックバックする(FC2ブログユーザー)