タグ

c#に関するanimistのブックマーク (12)

  • 【Unity】Zenjectに学ぶDependency Injection - Qiita

    概要 この記事は モバイルファクトリー Advent Calendar 2017 11日目の記事です。 10日目の記事は @tsukumaruさんの 「OpenMapTilesとgo-staticmaps」 でした。 記事ではUnityのDIフレームワークであるZenjectからDIについて学んだことをツラツラと書いていくものです。 DI(Dependency Injection)とは 別の呼び方としてはIOC(Inversion of Control: 制御の反転)とも呼ばれるそうです。 --- 追記 2017/12/12 --- IOCの実装手法としてDIが存在している、という関係が正しそうです。 https://ja.wikipedia.org/wiki/%E5%88%B6%E5%BE%A1%E3%81%AE%E5%8F%8D%E8%BB%A2 --- 追記終わり --- Depe

    【Unity】Zenjectに学ぶDependency Injection - Qiita
  • 【C#】三角関数(sin, cos, tan)を使う

    photo by Daniel Kulinski 某サイトでプログラミング学習をしていたとき、業務ではほぼ使わないであろう三角関数に引っかかった。 結論から言うと、MathクラスにSin, Cos, Tanというメソッドを持っているので、それを使えばよい。 三角関数を使う 使い方は、以下の通り。 using System; // 角度が30°の場合 var angle = 30; var sin = Math.Sin(angle * (Math.PI / 180)); var cos = Math.Cos(angle * (Math.PI / 180)); var tan = Math.Tan(angle * (Math.PI / 180)); //"Sin:0.5, Cos:0.87, Tan:0.58" ※少数第二位で四捨五入 Console.WriteLine("Sin:{0}, C

    【C#】三角関数(sin, cos, tan)を使う
  • 特殊な文字列リテラル

    概要 Ver. 6 C# 6 で、補完文字列と、nameof 演算子(nameof operator)という、2つの文字列関連機能が追加されました。 また、C# 11 で、生文字列リテラルという構文が追加されました。 文字列補間 クラスのメンバーを整形して文字列化するには、.NETではstringのFormatメソッドを使います。 var formatted = string.Format("({0}, {1})", x, y); string.Format メソッドの利用例 しかし、Formatメソッドには、以下のような面倒事がありました。 頻出するわりに、string.Format という長めのタイピングが面倒 値を埋め込みたい場所と、埋め込む値を渡す場所が離れて読みにくい {0}とかの数と、渡す値の数が違っていても実行して見るまで気付かない そこで、以下のような、Format用の専用

    特殊な文字列リテラル
  • Unityの[SerializeField]について色々な疑問に答えてみる - Qiita

    public class TestA : MonoBehaviour { [SerializeField] int maxScore = 100; [SerializeField] int minScore = 0; } このように、編集可能なフィールドとして出てきます。 Unity画面を見ながらパラメタを調整したい時や、プログラマ以外の方にパラメタを調整してもらいたい時などに、便利です。 publicでフィールドを定義しても、インスペクターには表示されるけど? むしろそちらの方が(Unityから見たら)来の姿で、publicではないフィールドでも[SerializeField]をつければシリアライズ化の対象にするよ、というスタンスです。SerializeFieldのマニュアルには、こう書かれています。 When Unity serializes your scripts, it wil

    Unityの[SerializeField]について色々な疑問に答えてみる - Qiita
  • 切り上げ/切捨て/四捨五入を取得する(Math.ceil,Math.floor,Math.round)

    Math クラスで用意されている ceil メソッド、 floor メソッド、 round メソッドを使用すると、数値の切り上げ、数値の切り捨て、数値の四捨五入をそれぞれ行うことができます。ここでは Java で数値の切り上げ/切捨て/四捨五入を取得する方法について解説します。

    切り上げ/切捨て/四捨五入を取得する(Math.ceil,Math.floor,Math.round)
    animist
    animist 2019/06/21
  • C# で二つのオブジェクトを比較する - Qiita

    文字列 a と b の内容を a == b で比較したところ、異なっているので False が出力されています。 しかし C# でのオブジェクトの比較法はこれだけではありません。大きく分けて次の三つがあります。 参照による比較 値による比較 == による比較 この三つを混同しないよう、これから順に説明していこうと思います。 その前に次のクラスと構造体を用意しましょう。 ExampleClass は参照型のクラス、ExampleStruct は値型の構造体です。 参照型と値型について詳しくは次の参考資料をご覧ください。 参考資料: 2-3 値型と参照型 大雑把に説明すると、参照型のオブジェクトを保持する変数にはオブジェクトのデータそのものではなく参照(メモリ上のアドレス)が入っていて、価型のオブジェクトを保持する変数にはオブジェクトのデータそのものが入っています。 あまり大きなデータを値型と

    C# で二つのオブジェクトを比較する - Qiita
  • LINQチートシート的なもの - Qiita

    UnityのC#のコード(幾つかの公式Assetとか)読んでたらFindとかいっぱい使ってあって悲しくなったんでLINQのメソッド一覧的なの作ってみました。 お願いだからforeach+List.AddじゃなくてSelect使ってとか お願いだから引数配列じゃなくてIEnumerableにしてとか なんでforeach回すだけなのにToArrayやってるの?とか 明らかに適切な場所じゃないとこで使っていて悲しかったんや・・・ とりあえずこんな事できるよ~的なの作ってみました。 とりあえずC#書く人なら常識的なところ辺りまで ※ファイルの頭に当然using System.Linq;入れています ※ソースコード形式です。各メソッド最後の行は出力を示します ※IEnumerableをシーケンス表記で統一しています。(リストと読み替えてもいいと思います) ※LINQは基的に少しだけ低速ですが気に

    LINQチートシート的なもの - Qiita
  • [C# 6.0新機能] 文字列への変数埋め込み

    C# 5.0までは文字列内にある値を埋め込みたい場合はstring.Formatメソッドを使用して以下のように記述する必要がありました。 string data = "pen"; string strText = string.Format("This is a {0}.", data);C# 6.0では、文字列の先頭に$を付け変数を{}で囲んで埋め込むことが可能です。 実行すると、文字列に埋め込んだ変数の部分が実際の値に置き換えられます。 string data = "pen"; string strText = $"This is a {data}.";

    [C# 6.0新機能] 文字列への変数埋め込み
  • 数値を右詰めや0埋めで文字列化するには?[C#、VB]

    稿は2004/01/30に初版公開、2008/07/10に改訂された記事を再改訂し、C# 6.0/Visual Basic 14(以下、VB 14)の補完文字列についての記述を追加したものです。また、稿のコードは全てC# 6.0/VB 14で動作を確認しました。 数値をファイルや帳票に出力する際には、文字列の幅を固定し右詰めにしたり、0埋めで出力したりしたい場合がある。このような用途には、Stringクラス(System名前空間)のFormatメソッドを使うのが簡単だ。 Formatメソッドでは、書式を指定する「書式指定文字列」と、それに対応するオブジェクトを引数で指定する。稿では、よく用いられるであろう整数値の文字列化に絞って解説する。 また、C# 6.0/VB 14では、「補間文字列」(interpolated string)という機能を使うことで、StringクラスのForma

    数値を右詰めや0埋めで文字列化するには?[C#、VB]
    animist
    animist 2019/05/26
  • 09d4bcc5af3556b9bb3a

    Unityちゃんの中にあるUnityChanScript内に定義されている変数「int HP」と関数「Attack()」を、別オブジェクトGameManager内から利用する。 Unityちゃんの状態 using System.Collections; using System.Collections.Generic; using UnityEngine; public class UnityChanScript : MonoBehaviour { public int HP = 100; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } public void Attack() { Debug.Log ("UnityChan_Atta

    09d4bcc5af3556b9bb3a
  • 複数の文字列を連結する方法 (C# ガイド) - C#

    連結とは、ある文字列を別の文字列の末尾に追加するプロセスです。 文字列を連結するには、+ 演算子を使用します。 文字列リテラルと文字列定数の場合、連結はコンパイル時に行われ、実行時には行われません。 文字列変数の連結は実行時にのみ行われます。 注意 この記事の C# 例は、Try.NET インライン コード ランナーとプレイグラウンドで実行されます。 [実行] ボタンを選択すると、対話型ウィンドウで例が実行されます。 コードを実行したら、コードを変更し、 [実行] をもう一度選択して変更後のコードを実行できます。 変更後のコードが対話型ウィンドウで実行されるか、コンパイルできなかった場合、対話型ウィンドウにすべての C# コンパイラ エラー メッセージが表示されます。 文字列リテラル 次の例では、ソース コードを読みやすくするために、長い文字列リテラルを短い文字列に分割しています。 このコ

    animist
    animist 2019/05/26
  • 【Unity入門】Updateメソッドとは?FixedUpdateとの違いも徹底解説! | 侍エンジニアブログ

    今回はUnityのUpdateメソッドについて解説をしたいと思います! Updateメソッドはゲーム開発する際に必須のメソッドです。 毎フレームごとに自動で呼び出されるメソッドであるためこのメソッドを使うことで定期的に処理をさせることができます。 この記事を読めば、 ・Updateメソッドの使い方 ・FixedUpdateメソッドの使い方 ・LastUpdateメソッドの使い方 を知ることができます。 また、それぞれ3つのUpdateメソッドの違いが何かを知るための特徴についても解説しています! ぜひ、最後までご覧ください! Updateメソッドとは? 使い方 まずUpdateメソッドについてですが、何らかの処理を行いたい時に毎フレーム呼ばれる処理になっています。 そのため、このUpdateメソッドに処理を記述することで毎フレーム呼び出され実行されます。 このメソッドはどういった場所で使わ

    【Unity入門】Updateメソッドとは?FixedUpdateとの違いも徹底解説! | 侍エンジニアブログ
  • 1