初めましてゲーム作りを始めたばかり、
プログラムも大学の授業程度のyzccdefineです
今ブロック崩しを作成していて、
キーを押したらマウスに半径Rの距離で円運動するプログラムを作成しています。
ですが、円運動の際ブロックや壁にぶつかっても今までは衝突判定が働いてくれていたのですが
全く追尾中は反応しません。
強制的に円運動するプログラムにしているのが影響しているのだとは思いますが
今のところ改善の検討がついていない状態です。
どういった改善を図れば良いのかご教授願いたく質問させていただきました。
c言語
1 private Vector3 mousepos;//ロ―カル 2 private Vector3 W_mousepos;//ワールド 3 4 public float r = 4;//描く円の大きさ 5 public float shit=0;//角度 6void UpDate(){ 7 float rad = Mathf.PI / 180.0f*shita;//ラジアンに 8 mousepos = Input.mousePosition;//取得 9 W_mousepos = Camera.main.ScreenToWorldPoint(mousepos);//カメラ座標をワールドに変換 10 W_mousepos.z = 0f;//Z軸だけ他のものと同じにするために固定 11 gameObject.transform.position = W_mousepos;//オブジェクトの座標の変更 12 if (shita == 360f) {//360度越したら戻しておく 13 shita = 0f; 14 } 15 shita += 5f; 16 rb.transform.position = new Vector3(W_mousepos.x+r*Mathf.Cos(rad) ,W_mousepos.y+r*Mathf.Sin(rad), 0);//円運動 17}
このオブジェクトはSphere Colliderを持っています。
この追尾円運動を追加する前のオブジェクトの動作は
rb.AddForce((transform.up + transform.right).normalized * speed, ForceMode.VelocityChange);
<rbはリジッドボディのインスタンスです。>
で押し上げるだけの動作です。
可能な限りのアドバイスをお願いします!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。