shiralphe
Hectopat
- Katılım
- 21 Kasım 2020
- Mesajlar
- 318
- Çözümler
- 1
Daha fazla
- Cinsiyet
- Erkek
C#:
public class Attractor : MonoBehaviour {
const float G = 667.4f;
public static List<Attractor> Attractors;
public Rigidbody rb;
void FixedUpdate ()
{
foreach (Attractor attractor in Attractors)
{
if (attractor != this)
Attract(attractor);
}
}
void OnEnable ()
{
if (Attractors == null)
Attractors = new List<Attractor>();
Attractors.Add(this);
}
void OnDisable ()
{
Attractors.Remove(this);
}
void Attract (Attractor objToAttract)
{
Rigidbody rbToAttract = objToAttract.rb;
Vector3 direction = rb.position - rbToAttract.position;
float distance = direction.magnitude;
if (distance == 0f)
return;
float forceMagnitude = G * (rb.mass * rbToAttract.mass) / Mathf.Pow(distance, 2);
Vector3 force = direction.normalized * forceMagnitude;
rbToAttract.AddForce(force);
}
}
OnEnable fonksiyonu içinde if koşulu kullanılarak ne yapılmak istenmiş? Tam anlayamadım.
Son düzenleyen: Moderatör: