ResetRewardFunction()
 {
     // Set reward for this step according to mixture of the following elements.
     if (IsRewardDistanceToTarget)
     {
         RewardFunctionDistanceToTarget.Reset();
     }
     if (IsRewardVelocityToTarget)
     {
         RewardFunctionVelocityToTarget.Reset();
     }
     if (IsRewardFacingTarget)
     {
         RewardFunctionFacingTarget.Reset();
     }
     if (IsRewardCoreUp)
     {
         RewardFunctionCoreUp.Reset();
     }
     if (IsRewardHeadUp)
     {
         RewardFunctionHeadUp.Reset();
     }
     if (IsRewardTimePenalty)
     {
         RewardFunctionTimePenalty.Reset();
     }
 }
 ResetRewardFunction()
 {
     // reset reward functions
     if (IsRewardDistanceToTarget)
     {
         RewardFunctionDistanceToTarget.Reset();
     }
     if (IsRewardFacingTarget)
     {
         RewardFunctionFacingTarget.Reset();
     }
     if (IsRewardTimePenalty)
     {
         RewardFunctionTimePenalty.Reset();
     }
 }