このとき必要になる情報が、プレイヤーと敵との「方向」です。プレイヤーと敵とはぞれぞれ位置情報をTransform.positionとして保有していますが
どちらがどの方向を向いている、という情報はありません。そのためまずは、この「方向」を計算によって算出する必要があります。
Vector3 distination = プレイヤーの位置情報 - 敵の攻撃の位置情報;
この計算式を使用することでプレイヤーと敵との「距離」が差分として算出されます。このとき一緒に「方向」の情報も取得できます。
プレイヤーをノックバックで移動させる距離については、敵とプレイヤーの位置関係に関係なく一定量にしたいので、算出されたdistination変数には正規化処理を行います。
その上で、設定しているKnockbackPower変数(ノックバックさせる力)を掛け合わせて、ノックバックを発生させます。
PlayerControllerスクリプトのOnTriggerEnterメソッドを修正していきます。なお追加する処理のみを記述していますので
ご自分のメソッドを参考に、適宜な位置にこの処理を追記してください。
PlayerController.cs
Rigidboby rb; // Startメソッドなどで変数には値を代入済とする
public float knockBackPower; // ノックバックさせる力
private void OnTriggerEnter(Collider other)
{
rb.velocity = Vector3.zero;
// 自分の位置と接触してきたオブジェクトの位置とを計算して、距離と方向を出して正規化(速度ベクトルを算出)
Vector3 distination = (transform.position - other.transform.position).normalized;
rb.AddForce(distination * knockBackPower, ForceMode.VelocityChange);
}
}