Example #1
0
    private Vector3 CalculateAcceleration(Rigidbody rigidbody, WeaponInfo info)
    {
        var localForward = rigidbody.transform.forward;

        var baseAcceleration = localForward * info.Acceleration * Time.deltaTime;

        if (!info.IsStartAccelerationFinished)
        {
            return(baseAcceleration);
        }

        var position         = rigidbody.transform.position;
        var attractionVector = AttractorsManager.CalculateForceVectorForTarget(position, info.Weight);

        var vectorsSum = baseAcceleration + attractionVector;

        rigidbody.transform.LookAt(rigidbody.transform.position + vectorsSum);

        return(baseAcceleration + attractionVector);
    }
Example #2
0
 private void Awake( )
 {
     AttractorsManager.RegisterAttractor(this);
 }