質問: Unity2Dでタップ中は円運動を行い、離した場合には、円運動をしていたオブジェクトが円運動により力が働いていた方向へ飛ばす処理を行いたいのですが、円運動を行う際、起点となるのはオブジェクトの位置かつ話した際には力が働いていた方向へ飛ばす方法が分からずご質問させていただきました。 現状、円運動は行えるのですが、オブジェクトの場所を起点として円運動を行うのではなく、コードで指定した場所を起点とし円運動を行うところまではできております。 ご教授のほど宜しくお願い致します。
回答: コードで指定した場所を起点として動かせているのであれば、起点としたいオブジェクトの gameObject.transform.localPosition を起点にするだけで良さそうな気がしますが、意図した場所にならないでしょうか? あとタッチを離した時に飛ばす処理は、簡単に済ませるなら、(現在の座標 - 前回の座標)をベクトルとして、その方向に飛ばせばそれっぽくはなると思います。 ただし、円運動計算に Time.deltaTime を使ってる場合はフレームレートによって結果が違ってくるので、厳密にやるのであればこの方法はダメです。