Чтобы вращение стрелки полностью не зависело от шара, сделайте пустым дочерним элементом шара, назовите его «стрелка», а затем сделайте стрелку дочерним элементом стрелки:
ball
├── arrow arm
│ └── arrow
Убедитесь, что стрелка направлена вперед в направлении стрелы.
Затем найдите положение мяча и игрока, но установите на одной высоте. Затем установите вращение стрелы Arm, используя Quaternion.LookRotation
, чтобы вычислить вращение, соответствующее желаемому направлению взгляда:
Vector3 floorBallPos = ball.transform.position;
floorBallPos.y = 0f;
Vector3 floorPlayerPos = player.transform.position;
floorPlayerPos.y = 0f;
arrowArm.transform.rotation = Quaternion.LookRotation(floorBallPos - floorPlayerPos);
Запустите этот код на каждом кадре, в котором нуждается стрелка должны отображаться, в том числе и во время вращения мяча, если вы хотите, чтобы стрелка отображалась.