Exemple #1
0
    private void ApplyMagneticForce(MagnetizedObject obj)
    {
        Vector3 rawDirection       = transform.position - obj.Trans.position;
        float   distance           = rawDirection.magnitude;
        float   distanceScale      = Mathf.InverseLerp(Range, 0f, distance);
        float   attractionStrength = Mathf.Lerp(0f, Strength, distanceScale);

        obj.Rb.AddForce(rawDirection.normalized * attractionStrength * obj.Polarity, ForceMode.Force);
    }
Exemple #2
0
 public void OnTriggerEnter(Collider other)
 {
     if (other.gameObject.CompareTag("Enemy") || other.gameObject.CompareTag("Player"))
     {
         MagnetizedObject newMag = new MagnetizedObject();
         newMag.Col      = other;
         newMag.Rb       = other.GetComponent <Rigidbody>();
         newMag.Trans    = other.transform;
         newMag.Polarity = 1;
         ListMagnetticObj.Add(newMag);
     }
     else if (other.gameObject.CompareTag("Sun"))
     {
         MagnetizedObject newMag = new MagnetizedObject();
         newMag.Col      = other;
         newMag.Rb       = other.GetComponent <Rigidbody>();
         newMag.Trans    = other.transform;
         newMag.Polarity = -1;
         ListMagnetticObj.Add(newMag);
     }
 }