XNA でゲームのプログラミングを行っており、構築中に提供された保存された出力場所を使用してユニバーサル数学オブジェクトを作成しようとしています。
私の計画はコンストラクターでrefを使用することでしたが、最初の呼び出しを超えてオブジェクトにその参照を保持/保存する方法がわかりません...
public MathObject(ref float OutParam)
{
Out = OutParam; // This obviously won't do what I want... But it's where I'd like to do it.
}
更新では、入力を記述し、製品に保存された出力場所を変更させたいと思います。
foreach (MathObject MatOb in MathList)
{
MatOb.Update(time);
}
アイデアは、コード全体で使用するモジュール式の数学ツールを作成し、作成時に、更新時に (再参照せずに) 変更する既存のオブジェクト パラメーター (「出力」) にそれを指示することでした。これにより、単一のループがツールのすべてのインスタンスに指示して、与えられた出力を変更できるようになることが期待されていました。
私が理解しているように、c ++では、変更するパラメーターのアドレスを数学オブジェクト内に保存し、更新でこれを使用して、その場所のメモリを指して変更することで可能です。
安全でないコードを使用せずに c# で同様のことが可能ですか?
安全でないコードは常に避けるべきですか?
編集:
- 使用目的 -
調整可能な「設定して忘れる」出力場所を持つオブジェクトを作成できるようにしたいと思います。
たとえば、ゲーム インターフェイス内で動作する単純なベジェ カーブ エディターを作成しました。特定の曲線が常に特定のパラメーター (文字の位置など) を調整するように、コードで出力の場所を設定できますが、インターフェイス内で出力が接続されているものも変更するとよいでしょう。
特定のアプリケーションは、主にゲーム内編集用です。エディターが自己完結型の場合に最も実用的であることは理解していますが、これは限られた、ゲーム コンソールに適した編集機能のためのものです (堅牢性は劣りますが、原理的にはリトル ビッグ プラネットの編集機能に似ています)。
私のバックグラウンドは 3D デザインとアニメーションであるため、多くのノードベースの編集システムでの作業に慣れています。さまざまなユーティリティ ノードを作成し、入力と出力を調整して、シェーディング、リギング モデルなどのパラメーターを駆動します。これをゲームで再作成しますが、ゲーム内の限られた編集機能に特定の原則を適用して適用することに興味があります。最善のトラブルシューティングを行うだけです。
返信ありがとうございます。