前提・実現したいこと
unity初心者です。射方投射するときに投げる物体のy軸の飛距離を測りたいです。
該当の自分のソースコード
void CheckDistanceYY()
{
if (!isCheckingDistanceYY)
{
return;
}
if (rb.velocity.magnitude * Mathf.Sin(Rad) == 0f)
{
highestposition = gameObject.transform.position;
float distanceYY = GetDistanceInYY(highestposition, stopposition);
Debug.Log("Y軸の飛距離は" + distanceYY.ToString("F2") + "メートルです");
isCheckingDistanceYY = false;
} float GetDistanceInYY(Vector3 highPos, Vector3 stopPos) { Vector3 highPosCalc = new Vector3(0f, highPos.y, 0f); Vector3 stopPosCalc = new Vector3(0f, stopPos.y, 0f); // 2つのVector3データから距離を算出 float distanceY = Vector3.Distance(highPosCalc, stopPosCalc); return distanceY; } Calcforcedirection(); } void Calcforcedirection() { float Rad = gameObject.transform.localEulerAngles.y * Mathf.Deg2Rad; // それぞれの軸の成分を計算 float x = Mathf.Cos(Rad); float y = Mathf.Sin(Rad); float z = 0f; // Vector3型に格納 forceDirection = new Vector3(0f, y, 0f); }
}
試したこと
着地点の座標を取得するのはできます。が、最も高い位置に来るときの座標を取得できません。
自分はy成分の速さが0になるとき(始めと最後を除く)最高点に達すると考えてやったけどできませんでした。
追伸
始めてここで質問したので言葉足らずかもしれませんがご了承ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/31 03:50
2021/03/31 04:04
2021/03/31 04:13 編集
2021/03/31 04:18
2021/04/01 01:53
2021/04/01 01:54