下記のサイトを参考に、スマホのジャイロの傾きで球を動かします。
スマホを傾けて、球が進んでいる途中に、
スマホを逆方向に傾けると、球は折り返して、逆方向に進み始めます。
このときの**「球が折り返してくるときの作動」**ですが、
下記のサイトのコードでは、慣性が働かない?
慣性が働いているように見えないくらい急速に球が折り返してきます。
現実の球では、進んでいる方向と逆方向に力がかかり始めると、
球が**【徐々に減速して】、速度がゼロになって、【徐々に速度が上がって】**逆方向へ進み始めます。
下記のコードでは、【徐々に減速して】 【徐々に速度が上がって】
という部分が抜けているような作動をします。
どのようなコードにすれば、徐々に減速して、折り返し、徐々に加速するようにできますか?
ゆっくり減速して、折り返して、ゆっくり加速、という作動をしてほしいです。
減速・加速する時間の長さを変数で調整できると理想的です。
private GameObject m_sphere;
void Start() {
// シーン上のSphere名義の球のGameObjectを保持.
m_sphere = GameObject.Find("/Sphere") as GameObject;
}
void Update() {
// ジャイロから重力の下向きのベクトルを取得。水平に置いた場合は、gravityV.zが-9.8になる.
Vector3 gravityV = Input.gyro.gravity;
// 外力のベクトルを計算.
float scale = 10.0f;
Vector3 forceV = new Vector3(gravityV.x, 0.0f, gravityV.y) * scale;
// m_sphereに外力を加える.
m_sphere.rigidbody.AddForce(forceV);
}
http://ft-lab.ne.jp/cgi-bin-unity/wiki.cgi?page=unity%5Fscript%5Fgyro%5Fmobile
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/09 02:51
2020/11/09 03:23