0001デフォルトの名無しさん (ワッチョイ 8b75-uWnk)2018/02/04(日) 22:02:28.59ID:FbKpa1HN0
どんどんソースが長くなる不思議。タイマー割り込みを馬鹿にしてるからだな。
まあ、動いてるならスマートにする必要ってないよな
普通に記述してそれがイモっぽいなら
そりゃ言語がイモなんでしょうがないんだよ
stateいらないとか、テストやデバッグするときstateが分からなくなるのに。
マルチスレッドや同期を書かせたらいけない人。
0956デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 18:46:01.75ID:IwZ3DIkv0
Timer1のなかにステートマシンつくったらなんでもできるけど、わかり難いだろ。
フローチャートのように上から下へ自然に流れる方がいい。
0958デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 18:50:30.27ID:IwZ3DIkv0
>>952
var cts = new CancellationTokenSource();
Task.WhenAll(
Task.Run(() => EventLoop(cts)),
TimerLoop(cts.Token)
).Wait();
こういう書き方を見るにつけ、なにかいい方法はないかとつらつらと考えてる。 あとはこんなの
IEnumerable<Action> JobSequece()
{
while (true)
{
yield return () => { ... };
yield return () => { ... };
....
}
}
async Task RoundRobin()
{
foreach(var j in JobSequece())
{
await Task.Run(() =>Thread.Sleep(100));
j();
}
}
タイマー割り込みって言葉使うのはHW直接いじる超低水準のコード書いてる人か
80年代マイコン少年のおじさんだろうねw
>>958
WhenAllをよく使う人はTPL Dataflowを覚えたほうがいい 0961デフォルトの名無しさん (ワッチョイ df9d-wl/W)2018/03/02(金) 19:02:23.48ID:IwZ3DIkv0
C++ならTimer割り込みって言葉は普通につかうぜよ。
本を読みながらUnityでC#を勉強しているのですが・・・
それぞれのコードの最後の行にあるnewは何をしているのか教えて下さい。
public class ArrowGenerator : MonoBehavior {
public GameObject arrowPrefab;
float span = 1,0f;
float delta = 0;
void Update()
this.delta > this.span) {
GameObject go = Instantiate(arrowPrefab) as GameObject:
int px = Random.Range(-6, 7);
go,tansform.positon = new Vector3(px, 7, 0);
}
}
}
他にも
public class IgaguriController : MonoBehavior {
public void Shoot(Vector3 dir) {
GetComponent<Rigidbody>().AddForce(dir);
}
void Start() {
Shoot(new Vector3(0, 200, 3000));
}
}
長いので分割します。すみません。
それぞれ最後の行の、
go,tansform.positon = new Vector3(px, 7, 0);
Shoot(new Vector3(0, 200, 3000));
このnew演算子?は何をしているのでしょうか?
それぞれVector3というメソッドが直後のカッコの中の引数を渡していると思うのですが
その手前のnewが何なのかわかりません
クラスをインスタンスにするときに使用するnewとは若干形が違いますよね
いくら調べてもこの形のタイプのnewが出てこなくて・・・。
どなたか宜しくお願いします・・・。
ああ・・・空白が埋まってしまっていてとても見づらいですね
本当にすみません
>>966
いや、見た通りやよ
Vector3クラスのインスタンスを作成しつつ代入しとるんや メソッドではなくクラスですね。
newは
クラス名 変数 = new クラス名()
の形しか見たことなくて・・・
上は
Vector3 go,tansform.positon = new Vector3(px, 7, 0);
という風に頭にもVector3 を付けないのですか?
下は
Shoot(Vector3 ABC = new Vector3(0, 200, 3000));
といった風に、ABCの様な変数は表記しないで、クラス名にnewを添えただけでも
クラスをインスタンス化できるのでしょうか?
>>970
一応、上のは入門書に書いてあるコードなのですよね
入門書が不親切なのか私に応用力がないのか・・・後者っぽいですね
他の入門書も調べて買ってみます コードを形で覚えてるのかなぁ
式という概念は分かるかな?
>>971
コードがタイポってる気がするが、上はフィールドへの代入だから
TransformクラスでpositionはVector3Dであると既に定義されている
下はコードにメソッド定義も含まれていて仮引数の型が書いてあるよね
変数宣言の型指定であって、インスタンス化には代入を伴う制約はない
未初期化の変数は参照できないから殆どは宣言時に代入もされるけど
それぞれの字句に切り分けて意味を把握しないと歪んだ理解になります >>974
とても詳しく教えて頂きありがとうございます
そういうことなのですね・・・やっと少し理解できました
意味を捉えようとは思って勉強していたのですが形で覚えていたんですね
1単語?ずつ意味を捉える様に意識してみます
皆さん変な質問にお答え頂きありがとうございました! 0976デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/03(土) 08:22:24.39ID:kknO3Mli0
Vector3 vec; 変数定義
vec = new Vector3(1,3,2); インスタンス生成後、変数に代入
処理の結果を返してくれるapiで、例えば
貼り付けるテキストを決める
フォント名設定
色設定
文字の大きさ設定
なと細かくapiを呼び出ししないといけない場合でも、結果を受け取る変数はやっぱり使い回ししないほうがいいですか?その変数はapi呼び出したあとエラー確認するだけです
個人的には、
異なるインスタンスなら原則使い回さない
インスタンスが同じなら使い回す
>>977
そもそも変数いらんのでは?
if (api.Foo().HasErros) return;
if (api.Bar().HasErrors) return;
... >>978-980
ありがとうございます。
変数を使用しない方法もありますね。ただメソッドは引数が多く、文が長くなるため悩み中です pythonで言うデコレーターはC# のどれに辺りますか?
C# 修飾子 でググるとC++ 修飾子の記事しかHITしません。
属性(Attribute)
Pythonのデコレータとは違って、それ自体はメソッドに純粋にメタデータを付けるだけの機能なので、
属性を処理するにはリフレクションを駆使する必要がありクソ面倒臭い
フレームワーク作る人のための機能
>>983-985
デコレータ自体を実現しようとするなら厄介よね、一般的なデコレータに相当するもので良ければ
@propertyならC#プロパティがあるし、@classmethodや@classmethodならstatic修飾子で済むんだけど
実装に関わってきそうなのはデリゲートとかかな、Pythonで言えばbound/unbound methodに相当する デコレーターをC#で実現するなら
インターフェース使って素直にパターン実装するか
横断的関心事なら属性使うかのどっちかじゃない?
使いたい目的次第
0993デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:15:41.15ID:J/ZR4f1P0
え
0994デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:16:54.70ID:J/ZR4f1P0
い
0995デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:17:03.97ID:J/ZR4f1P0
お
0996デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:18:43.29ID:J/ZR4f1P0
い
0997デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:18:57.30ID:J/ZR4f1P0
い
0998デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:21:21.48ID:J/ZR4f1P0
あ
0999デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:24:24.96ID:J/ZR4f1P0
お
1000デフォルトの名無しさん (ワッチョイ 6775-LhZF)2018/03/04(日) 08:26:06.35ID:J/ZR4f1P0
お
10011001Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 27日 10時間 23分 38秒
10021002Over 1000Thread
5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php