投稿

5月, 2024の投稿を表示しています

C# Fluentインターフェース

 オブジェクト自身を返すメソッドを定義して、Fluentインターフェースを作りました。 メソッドチェーンでピザのサイズやトッピングを設定できます。 using System; using System.Collections.Generic; public class Pizza { public string Size { get; private set; } public List Toppings { get; private set; } public string CheeseAmount { get; private set; } public Pizza() { Toppings = new List (); } public Pizza Small() { Size = "Small"; return this; } public Pizza Medium() { Size = "Medium"; return this; } public Pizza Large() { Size = "Large"; return this; } public Pizza AddTopping(string topping) { Toppings.Add(topping); return this; } public Pizza ExtraCheese() { CheeseAmount = "Extra"; return this; } public Pizza NormalCheese() { CheeseAmount = "Normal"; return this; } public override string ToString() ...

C# 前置/後置インクリメント演算子 (++)

++を変数の後ろに付けると、式が評価された後に変数の値を1増加します。 前に付けると1増加した後に評価されます。 int integer = 0; Debug.Log(integer++); // 0 Debug.Log(integer); // 1 Debug.Log(++integer); // 2

C# 参照の値渡し

引数にrefをつけない場合、再割り当てするとメソッドのローカル参照に新しいオブジェクトが割り当てられる。 using UnityEngine; public class RefTest : MonoBehaviour { RefTestData data; private void Start() { data = new RefTestData(); TestMethod(data); Debug.Log(data.id); TestMethod2(data); Debug.Log(data.id); TestMethod3(ref data); Debug.Log(data.id); } public void TestMethod(RefTestData data) { data = new RefTestData(); data.id = 1; } public void TestMethod2(RefTestData data) { data.id = 1; } public void TestMethod3(ref RefTestData data) { data = new RefTestData(); data.id = 2; } public class RefTestData { public int id; } } 0 1 2

Unity Android 実機テスト できない

①Androidの「開発者モード」と「USBデバッグ」をオンにする。 ②データ転送できるUSBケーブルでAndroidとPCを接続する。  ③Unityで「Build And Run」を実行する。  UnityHubで、Android Build Supportモジュールをインストールしておきます。  Build SettingsウィンドウでAndroidにプラットフォームを切り替えます。  テストしたいシーンがBuild Settingsの「Scenes In Build」に追加されチェックが入れられている必要があります。

C# TimeSpan

イメージ
TimeSpan型の値は、DateTime型の値の差を表します。  TimeSpan.Daysで差の日数がわかります。  1ミリ秒や1ティックでも短いと日数に換算されないようです。 DateTime.Dateの差使うと日付を比較できます。   DateTime today = DateTime.Now; DateTime yesterday = today.AddDays(-1).AddMinutes(1); DateTime tomorrow = today.AddDays(1); Debug.Log("yesterday: " + yesterday); Debug.Log("today: " + today); Debug.Log("tomorrow: " + tomorrow); TimeSpan timeSpan = today - yesterday; Debug.Log("today - yesterday: " + timeSpan.Days); timeSpan = tomorrow - today; Debug.Log("tomorrow - today: " + timeSpan.Days); timeSpan = today.Date - yesterday.Date; Debug.Log("today.Date - yesterday.Date: " + timeSpan.Days); timeSpan = tomorrow.Date - today.Date; Debug.Log("tomorrow.Date - today.Date: " + timeSpan.Days);