DiscreteContinuousStep() { base.DiscreteContinuousStep(); // step reward functions if (RewardScheme == RewardSchemes.IS) { if (IsRewardDistanceToTarget) { AddReward( RewardFunctionDistanceToTarget.StepGetReward() * RewardDistanceCoefficient * RewardSchemeScale); } if (IsRewardFacingTarget) { AddReward( RewardFunctionFacingTarget.StepGetReward( Player.transform.forward) * RewardDirectionCoefficient * RewardSchemeScale); } if (IsRewardTimePenalty) { AddReward( RewardFunctionTimePenalty.StepGetReward() * RewardTimeCoefficient * RewardSchemeScale); } } } // DiscreteContinuousStep
DiscreteContinuousStep() { base.DiscreteContinuousStep(); if (IsRewardDistanceToTarget) { AddReward( RewardFunctionDistanceToTarget.StepGetReward() * globalManager.RewardDistanceCoefficient * RewardSchemeScale); } if (IsRewardVelocityToTarget) { AddReward( RewardFunctionVelocityToTarget.StepGetReward() * globalManager.RewardVelocityCoefficient * RewardSchemeScale); } if (IsRewardFacingTarget) { AddReward( RewardFunctionFacingTarget.StepGetReward( BodyCore.transform.forward) * globalManager.RewardDirectionCoefficient * RewardSchemeScale); } if (IsRewardCoreUp) { AddReward( RewardFunctionCoreUp.StepGetReward() * globalManager.RewardDistanceCoefficient * RewardSchemeScale); } if (IsRewardHeadUp) { AddReward( RewardFunctionHeadUp.StepGetReward( BodyCore.transform.up) * globalManager.RewardDirectionCoefficient * RewardSchemeScale); } if (IsRewardTimePenalty) { AddReward( RewardFunctionTimePenalty.StepGetReward() * globalManager.RewardTimeCoefficient * RewardSchemeScale); } } // DiscreteContinuousStep