より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

C#

XamarinTelemetry" task failed unexpectedly

C#

XamarinでiOSにデプロイしようとすると以下のエラーが。 XamarinTelemetry" task failed unexpectedly. Any CPUにしてリビルドしたら解決しました。 詳細 Severity Code Description Project File Line Suppression State Error MSB4018 The "XamarinTelemet…

UnityのSerializableFieldで連想配列(Dictinary)を扱いたい

C#

結論から言うとDictionaryに対してSerializableFieldAttributeを宣言してもInspectorでは設定できません。 そのままではできないので Key,Valueの形のクラスを宣言しておく これをリスト形式で保持して、Inspectorから設定できるようにする 取得時に連想配列…

SpriteRenderer - Order in Layerの値は-32768-32767(Unity 2021.3.1f1)

C#

Order in Layerの値が気づかぬうちにマイナスの値になってる! これはoverflowだな、と。上限をオーバーしたためにそのような値になったのでしょう、と。 値の最大値は何?と検索したのですが、特に出てこなかったので自分で検証してみました。 確認方法は簡…

Unityで画像(png)ファイルのTextureTypeが変えられない

C#

あれ? pngファイルなのにTextureTypeが変えられない。Sprite(2D and UI)にしたいのに。 それどころかInspectorに何も設定が表示されない。 原因は色々あるのでしょうが、自分の場合は、StreamingAssetsフォルダ内にあったことが原因でした。

Unity標準のObjectPoolで遊んでみる

C#

Unity標準のObjectPoolを触ってみることにしました。 一通りやりたいことはできそうだなと。 public class TokenPoolManager : SingletonMonoBehaviour<TokenPoolManager> { [SerializeField] private GameObject tokenPrefab; public ObjectPool<Token> TokenPool => _tokenPool ??= </token></tokenpoolmanager>…

RiderでWindowをSplit Vertical。よく忘れるのでメモ。

C#

Riderで画面を2分割したい時の操作。 よく忘れるのでメモ。 Windows-EditorTabs-Split Right です。 EditとかViewではありませんでした。 Editor tabs | JetBrains Rider

DIライブラリをUnityContainerからMicrosoft.Extensions.DependencyInjectionへ乗り換え

C#

発端は既存コードをUnityで使いたいからでした。 しかし、UnityContainerは名前空間は同じUnityで衝突してしまうのです。 気づくと、とっくにサポートは終わっていたのです。 github.com 世の中は常に変化してるものなんですね……。 そこで何を使うか考えたと…

Visual Studio 2022の起動時、直近のソリューションを開く

C#

久しぶりにVisual Studio 2022を起動したら、空の状態で起動されるようになってしまってました。 直近開いたソリューションを開くようにしたいな、と。 Options - Environmentに設定ありました。

AMDeviceSecureInstallApplicationBundle returned: 0xe8000067 (kAMDAPIInternalError).

C#

AMDeviceSecureInstallApplicationBundle returned: 0xe8000067 (kAMDAPIInternalError). 実機デバッグで発生。 これは、実機再起動で解消しましたね。

CollectionAssertのAreEquivalentを使え

C#

CollectionAssertを使ってないようだったので、その話を職場でちょっとしました。 とはいえ、そんなに使わなくてもなんとかなるのですが。 CollectionAssertは配列に関する検証を行うメソッドを提供するクラスです。 使えそうなNUnit.CollectionAssertは以下…

enum型名とプロパティ名がかぶる時どうするか

C#

以下みたいなケース。 using System; public class Program { public static void Main() { var a = new A(); Console.WriteLine("Hello World"); } } public class A { public enum Category { A, B } public Category Category {get; set;} } Compilation …

Supported iPhone orientations are not matched pairs

C#

Supported iPhone orientations are not matched pairs という警告が。 stackoverflow.com <key>UISupportedInterfaceOrientations</key> <array> <string>UIInterfaceOrientationLandscapeRight</string> </array> <key>UISupportedInterfaceOrientations~ipad</key> <array> <string>UIInterfaceOrientationPortrait</string> </array>

WPFで目盛りに数値を表示したい

C# C#

結論から言うと、以下を参考にするのが良さそうです。 github.com 試したこと stackoverflow.com 上記で紹介されているコードをSliderに継承させてやってみました。 しかし、 微妙にズレる 大体OKなんですが、Slider全体のサイズから割り出しているので、微…

「The connection to the local Broker couldn't be established and the maximum allowed connection attempts have been reached.」

C#

The connection to the local Broker couldn't be established and the maximum allowed connection attempts have been reached. Xamarinでまた見たことのないエラーが出たな、と。 私の場合はOS再起動で解決しました。 docs.microsoft.com

直の字がおかしくなった。Unity 欧文フォントで日本語。

C#

仕事で直の字がおかしくなる。中国語みたいな感じだ、ということがあったのですが 欧文フォントで日本語を表示しようとしたことが問題のようでした。 Windowsで試す Macで試す Macだと正しく表示してしまうので、社内で自分の端末では起きないぞ、なんてこと…

Assert.Equals( a,b ) なんてイージーミスでハマってしまった件

C#

テストコードを書くタスクがあって Assert.Equals(a,b) と書いていて、あれ、なんで失敗するんだ? とハマってしまいました。 正しくは、Assert.AreEqual(a,b) です。 docs.nunit.org

読書感想「.NETのクラスライブラリ設計 改訂新版 開発チーム直伝の設計原則、コーディング標準、パターン」

C#

少し読んで、これは買うべきだと思った本です。 それなりのお値段になりますが。 動詞やパスカルケース程度のなんとなくの命名についてもルールが掘り下げてあります。 ここに学んだことを箇条書きにする次元ではなく、内容ほぼ全てが覚えておくべきことだか…

「Could not load the framework 'IBFoundation' 」

C#

error HE0003: Could not load the framework 'IBFoundation' (path: /Applications/Xcode.app/Contents/Frameworks/IBFoundation.framework/IBFoundation): not found. 0 x Windows 再起動 x Visual Studio 再起動 x XCode Update x Mac再起動 x iOS(デプロ…

LinqでListの結合はConcat

C#

LinqでListの結合ってどうするんだっけなー と、うろ覚えでUnionを使ったところ、 思ったような結果が出ず、結合されていないではないかということがありました。 Unionは重複なし結合。 単純にListを結合したいならConcat。 using System; using System.Lin…

Javaグラフィックス完全制覇をUnityで実装してみる〜シェルピンスキーのギャスケット

C#

書籍「Javaグラフィックス完全制覇」を参考にシェルピンスキーのギャスケットを描画してみます。 UnityなのでLineRendererを用います。 三角形一つについてLineRendererが必要になるので、LineRendererを追加したGameObjectをPrefabとして描画していきます。…

Javaグラフィックス完全制覇をUnityで実装してみる〜3Dの花を咲かせる

C#

Unityの練習中なので、書籍「Javaグラフィックス」をUnityで実装してみることにしました。 Javaグラフィックスは2001年の書籍です。 Javaアプレットとか言っていた時代ですね。私の年齢層がバレますね。 結構面白いことができるので大事に保管していました。…

Unityラングフォート方程式でストレンジアトラクターを作成してみる

C#

書籍「Unityで作るストレンジアトラクター」で学んだことを活かして、ラングフォート方程式でストレンジアトラクターを作成してみることにしました。 数式や実装は以下を参考にします。 www.isc.meiji.ac.jp ローレンツ方程式より計算式を実装するだけでもミ…

読書感想「Unityで作るトロコイド」

C#

Reactのアイコンみたい。 最初の4.6で動かすときにUpdateは空メソッドにしておく必要があります。Changeというメソッドを呼び出すようになってますが、宣言されてないので。 Reactのアイコンみたい 拡張して、最後はすごいことになります。

読書感想「Unityで作るストレンジアトラクター」

C#

ストレンジアトラクターの一つであるローレンツアトラクターを作る本です。 ローレンツアトラクターはローレンツ方程式から生成される曲線です。 ja.wikipedia.org ただ、回転が書籍通りに実装したつもりなのですが、うまく動作しませんでした。ローレンツア…

読書感想「きっちり完成!Unity3Dゲーム制作 クリックスナイパー編」

C#

フタバゼミというプログラミングを教えるところが出版している本です。 レイアウトは「高い(Tall)」で説明されます。 作ったターゲットを撃つだけでも割と面白い 私は、連射性能を上げた上、右クリックの時は、強く右に曲げるようにしました。ターゲットは左…

Riderで選択範囲の移動「Ctrl+Shift+Alt + Up/Down/Left/Right」

C#

小ネタですが、メモ。 Visual Studioで地味に好きな機能が選択範囲の移動です。 選択範囲をまとめて一行上、一行下に移動させます。 これを Riderで行う場合はどうやるんだというと、 Ctrl+Shift+Alt + Up/Down/Left/Right のようです。 www.jetbrains.com

こんな文法あるんだ「Id = id ?? throw new ArgumentException(nameof(id));」

C#

namespace ValueObject { public class User { public UserId Id { get; set; } public UserName Name { get; set; } public User(UserId id, UserName name) { if (id == null) throw new ArgumentException(nameof(id)); if (name == null) throw new Argu…

ASP.NET WebアプリケーションにAPIアクセス数に制限をかけるライブラリ「WebApiThrottle」

C#

github.com やりたいことが、数行のコードで実現できる。これぞ、いいライブラリと唸りました。 C#のASP.NET WebアプリケーションについてAPIアクセス数に制限をかけるライブラリです。

HashSetの方がListよりパフォーマンスが速い。そして両者の違いは?

C#

ソースレビューしていたら、List使うだろーと思っていたところでHashSetを使われていることがありました。 なぜにHashSet? そもそもHashSetってなに?と調べてみたところ……。 qiita.com 圧倒的にListよりHashSetの方が検索速度が速いことを初めて知りました…

読書感想「Unity5とC#で作るライフゲーム: UnityとC#で作ってみようシリーズ3」

C#

本に書いてある通りにやっただけですが、サクッと作れるものなんだなぁと感心してしまいました。 開始して、マウス右クリックする ライフゲームは以下の法則です。 死んでいるセルの周囲8セルに生きているセルが3つあれば、セルが生まれる 生きているセルの…