Unityを使用して開発を開始します。 私はそのような何かをやっている:Unity3D C#回転後に正順を計算する
if(Input.GetKey(KeyCode.A))newValues[1]-=this.turnSpeed*(float)Time.deltaTime;
if(Input.GetKey(KeyCode.D))newValues[1]+=this.turnSpeed*(float)Time.deltaTime;
transform.Rotate(0, newValues[1], 0);
if(Input.GetKey(KeyCode.W))newValues[0]+=this.speed*transform.forward.z*(float)Time.deltaTime;
if(Input.GetKey(KeyCode.S))newValues[0]-=this.speed*transform.forward.z*(float)Time.deltaTime;
transform.position = new Vector3(transform.position.x, transform.position.y, (float)newValues[0]);
だから私は、回転と私は移動することができますが、それは私がZ特定の動きを呼んでいる知っている、ちょうどZラインに移動します。 しかし、JavaScriptを使用して、私はので、私は新しいベクトル・プロセスを実行する必要があり、別の変数にコピーし、それが魔法のように動作し、回転を使用したときに、自分自身へのオリエンテーションとして使用していない何か
transform.forward+=this.speed*transform.forward*(float)Time.deltaTime;
を行うことができますそれは回転しています。
をあなたはおそらく、あなたのタイトルとタグを編集する必要があります。使用される単位タグは、MSアプリケーションブロック内の依存性注入コンテナを参照します。おそらくunity-3Dを指しているでしょう。これがゲームのためのものであれば、適切なタグを追加したいかもしれません。 – Tod
'transform.forward + = this.speed * transform.forward *(float)Time.deltaTime;'をC#コードに置くとどうなりますか? JavascriptとC#はそれぞれ同じ.NET中間言語にコンパイルされるため、少し異なる方法でコード化されていれば、1つの言語で可能なものはすべて他の言語でも可能です。 –
それは仕事をしない、それは読み取り専用の変数です – Lefsler