前提・実現したいこと
2Dアクションゲームでキャラクターが物体を投げる際に、
歩行速度を物体の移動速度に加算したいと考えています。
そこで、1フレーム前の座標と現在の座標の差をaddforceの値に加算しようと思ったのですが、
むしろ飛ぶ距離が縮むなど、上手くいきません。
改善方法を教えて頂けると嬉しいです。よろしくお願いします。
該当のソースコード
public class throwing : MonoBehaviour
{
Vector3 PlayerPosition;
Vector3 lastPos;
Vector3 Movement;
Vector3 enhancedMovement;
public float enhancement;
public GameObject rock;
GameObject rocks;
public GameObject hand;
Vector3 Force;
public Vector3 presetForce;
void Update()
{
//1フレーム前と現在の座標の差を算出
Vector3 PlayerPosition = this.transform.position;
Vector3 Movement = PlayerPosition - lastPos;
//1フレーム前と現在の座標の差を、enhancementの値で乗算
Vector3 enhancedMovement = Movement * enhancement;
if (Input.GetButtonDown("Fire3"))
{
//rockプレハブをhandの位置から射出
GameObject rocks = Instantiate(rock) as GameObject;
rocks.transform.position = hand.transform.position;
Vector3 Force = presetForce + enhancedMovement;
rocks.GetComponent<Rigidbody>().AddForce(Force);
}
}
}
回答2件
あなたの回答
tips
プレビュー