پرتاب نارنجک به سمت هدف (دقیق)_یونیتی_تابع AddRelativeForce در یونیتی
چهارشنبه, ۱۴ مهر ۱۳۹۵، ۱۱:۴۲ ب.ظ
gameover.blog.ir
مثال 2:
همونطور که از موضوع پیداست قراره یه متود براتون
بگم که به وسیله اون بتونید پرتاب نارنجک رو شبیه سازی کنید و آن هم دقیق
به هدف بخورد
متود :
private Vector3 ThrowBomb(Transform source, Vector3 target, float angle)
{
Vector3 direction = target - source.position; // get target direction
float h = direction.y; // get height difference
direction.y = 0; // remove height
float distance = direction.magnitude; // get horizontal distance
float a = angle * Mathf.Deg2Rad; // Convert angle to radians
direction.y = distance * Mathf.Tan(a); // Set direction to elevation angle
distance += h / Mathf.Tan(a); // Correction for small height differences
float velocity = Mathf.Sqrt(distance * Physics.gravity.magnitude / Mathf.Sin(2 * a));
return velocity * direction.normalized;
}
:مثال
Rigidbody B = Instantiate(Bomb, transform.position, transform.rotation) as Rigidbody;
B.velocity = ThrowBomb(transform , Target.position,15);
Target = هدف transform = موقعیت خود Angle = 15 = یعنی مقدار زاویه که معمولا این عدد خوب جواب میده
مثال 2:
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void FixedUpdate() { rigidbody.AddRelativeForce(Vector3.forward * 10); } }
۹۵/۰۷/۱۴