2023-01-01から1年間の記事一覧

各種、自分がよくお世話になるサンプル等集

もくじ https://tera1707.com/entry/2022/02/06/144447 各種、自分がよくお世話になるサンプル等集 UWPのサンプル https://github.com/microsoft/Windows-universal-samples/tree/main/Samples デスクトップアプリのサンプル https://github.com/microsoft/W…

Task.WhenAllで、複数タスクのうちどれか1つが終わるまで待つ & 例外処理

C#

もくじ https://tera1707.com/entry/2022/02/06/144447#Task やりたいこと 複数のTaskの完了を待つTask.WhenAll()を使って、複数の処理を、複数のタスク(スレッド)で行わせた後、全部のタスクが終わるのを待つ、ということはよくやるのだが、今回、どれか一…

C++のCOMのコードをC#にもっていきたいときに、interfaceや構造体等の定義の参考にするもの

もくじ https://tera1707.com/entry/2022/02/06/144447#COM やりたいこと COMでなにかをしないといけないときに、自分は C++でまずCOMを使ってやりたいことができるか試す それが出来たら、C#に直す 必要なinterfaceや構造体などを、C++のヘッダーを見ながら…

今使っているスピーカー(デフォルトスピーカー)の情報を取る

もくじ https://tera1707.com/entry/2022/02/06/144447#COM やりたいこと 以前の記事で、つながっているマイク・スピーカーを全部列挙してデバイス名を出す、ということをしたが、今回は、複数のマイク・スピーカーが刺さっているときに、今使われているもの…

タスクスケジューラーで、定期的に自作exeを起動したい

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと ある処理を行うexeを作成したのだが、そのexeを使って、 WindowsPCを起動して、 ログインした3分後に一度実行したい。 さらに、その後10分おきにもexeを起動したい。 (exeは、起動してす…

WaitableTimerで時間を測る

C++

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Windowsアプリで、タイマーで時間を測るときに、Windowsがスリープに入っている間も時間をカウントしたいと思った。 (C#で、Thread.Sleep(10 * 60 * 1000)で10分待っている間に、Windows…

ボタンを押したときの処理を書く その②

もくじ https://tera1707.com/entry/2022/02/06/144447#Unity やりたいこと 前回、ボタンを押したときの処理の書き方を知ったが、他にもやり方がある様子。それもメモっておきたい。 やりかた AddListener()を使う。 ボタンにスクリプトを割り当てる ヒエラ…

ボタンを押したときの処理を書く その①

もくじ https://tera1707.com/entry/2022/02/06/144447#Unity やりたいこと Unityの画面上にボタンを表示して、それを押したときの処理を書きたい。 やりかた 今回は、Unity Learnの「レッスン 5.3 - ゲームオーバー」で習ったやり方でやってみる。 押したと…

PCに接続されているマイク(オーディオデバイス)を取得し、音量設定をする(EnumAudioEndpoints)(C#版)

COM

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、PCにつながっているマイクを列挙して、そいつの音量設定をする、ということをC++でやった。 同じことを、COMの練習もかねて、C#でやりたい。 前提 VisualStudio2022 .NET6 …

StartCoroutine()+IEnumerableを返すメソッド+WaitForSecondsで秒数を測る

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Unityで時間を測りたい。 前提 Unity 2021.3.31f1 コルーチンを使った待ち処理の作り方 まず、戻り値がIEnumeratorのメソッドを作る。 IEnumerator MyWait() { } その中に、yield return …

PCにマイクやスピーカー(オーディオデバイス)を抜きさししたときのイベントを取る(C#版)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、C++で、オーディオデバイス(マイクとかスピーカーとか)が接続されたときのイベントを拾うということをした。 その時のコードを、C++からC#にしたい。 実験コード COMの練…

ランダムな値を取得する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと ランダムな値を取りたい。 やりかた 下記のようにする。 // 0~10の範囲のランダムな値を取得する(整数) Random.Range(0,10); // 0.0~10.0の範囲のランダムな値を取得する(float) Ra…

別のオブジェクトの方に向けて、力を加える

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるオブジェクトから、別のオブジェクトに向けて、力を加えたい。 (あるオブジェクトから、別のオブジェクトに向かうベクトルを取得したい。それをAddForceに与えてやったら、その方向…

あるdllを握っているプロセスを特定する(tasklist /m)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと あるdllファイルを削除したかったのだが、「ほかのプロセスが使用中」と言われて消せなかった。 どうしても消さないといけないので、そのプロセスを止めたかったのだが、どのプロセスなの…

いじるのにシステム権限が必要なフォルダに、copyコマンドでファイルをコピーしたい(PeExec)

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと system32フォルダの中のさらに奥の方のフォルダなど、ファイルを貼り付けたりするためにシステム権限が必要になるようなフォルダに、windowsのコマンドのcopyでファイルを貼り付けたい。 …

TPSっぽく自キャラとカメラを動かす

やりたいこと 最近、アーマードコア6というゲームをしたのだがそのゲームでは、PS5のコントローラーで、 左スティックの上下左右で、キャラクターを前後左右に移動し、 右スティックの上下左右で、視点を上下左右に回転していた。 それがカッコいいのでマネ…

ゲームコントローラーの入力をとる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと ゲームコントローラーの入力を受けて、キャラクターを動かすようなことをしたい。 前提 Unity 2021.3.31f1 Input System 1.7.0 やり方 「Input System」を使う。 手順(準備) メニュー >…

別のオブジェクトに割当たっているスクリプトの変数の値を取ってくる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 衝突した相手のオブジェクトをとる、であれば、OnCollisionEnter()の引数で取ることができるが、衝突もしてない、離れたオブジェクトについての情報を取りたい。 やりかた GameObject.Fin…

オブジェクトのPrefabをインスタンス化したい

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと オブジェクトのPrefabをインスタンス化したい やったこと C#スクリプトに、GameObjectの変数を作る。 public class SpawnManagerX : MonoBehaviour { public GameObject[] objectPrefabs;…

キー入力を判定する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと Update()コマンドの中で判定する。 押しっぱなしを判定したいときは、 Input.GetKey(KeyCode.Space){} のように書く。 一度押された時を取りたいときは、 Input.GetKeyDown(KeyCode.Space…

オブジェクトを移動させる

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと オブジェクトをただ移動させたい。 やり方 スクリプトのvoid Update()に、下記のように書く。 transform.Translate(Vector3.left * speed * Time.deltaTime); Time.deltaTimeは、たぶん「…

パーティクルを動かす

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと パーティクル、いわゆるエフェクト?的な奴を出せるらしい。 出してみたい。 やりかた ParticleSystem変数をpublicで定義する public class PlayerController : MonoBehaviour { private …

古いUnity IDE(開発環境)をインストールする

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 「Unity Learn」という、Unity公式の勉強サイトで使い方を勉強しようと思った。 例えばこの辺り。 https://learn.unity.com/project/unit-1-driving-simulation-jp?contentId=5f7229b2edb…

音を出す

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと C#スクリプトから音を出したい。 ドカーン、とか。 やりかた スクリプトに、音をあらわすAudioClip moneySound;をpublicで定義する。 public class PlayerController : MonoBehaviour { p…

重力を調節する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 重力を軽くしたり重くしたりしたい。 ※重力は、シーン全体に影響するっぽい。 やりかた Physics.gravityに、倍率をかけてやる。 Physics.gravityの初期値は、Vector3で(0.00, -9.81, 0.00…

モノの大きさを取る

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと C#のスクリプトから、オブジェクトの大きさを取得したい。 transformのscaleをとっても、大きさの値じゃなさそうな値しか取れなかった。 やりかた 今回は、この町の背景オブジェクトの大…

オブジェクトに付けられているコンポーネントを取得する

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと オブジェクトにつけられているComponentを取る。 付けられてるコンポーネントとは、下図に出てる、「RigidBody」「AudioSource」などのヤツら。 これらが取れると、C#スクリプトから、 Ri…

Prefabの作り方

やりたいこと Prefabをつくりたい。 Prefab:好きなアセットの、好きなパラメータをセットされた「お気に入りオブジェクト」的な奴。 Prefabを作っておけば、そのお気に入りオブジェクトをC#スクリプトから複製できたりする。 やりかた Assetsフォルダの下に…

構造体の「StructLayout」とは何をするものか?

C#

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと COMについて勉強していたときに、 [StructLayout(LayoutKind.Explicit)] public struct PROPVARIANT { [FieldOffset(0)] public ushort vt; [FieldOffset(2)] public ushort wReserved1; …

SensorManagerで、C++とC#でCOMを使う練習をする その2

もくじ https://tera1707.com/entry/2022/02/06/144447 やりたいこと 以前の記事で、COMをC++とC#から使う練習をしたつもりだったが、再度COMを使うことになったときに、全然わかってなかったことに気づいてしまったので、もうちょっと頑張ってCOMを使う練習…