W298.dev
ProjectsPostsAbout Me
youtube
Pages
ProjectsPostsAbout Me
Posts
TAGS
All
RL-Obstacle-Avoid
RL-Competitive
Robot-Escape
Assembly Definition
ML-Agent
RL-Obstacle-Avoid
RL-Competitive
Unity
RL-Obstacle-Avoid
RL-Competitive
Robot-Escape
Assembly Definition
SERIES
RL-Obstacle-Avoid
RL-Competitive
Robot-Escape

Aim Accuracy

지금까지는 AI가 총을 플레이어에게 발사하면 거의 무조건 맞았다. 정확도를 조절하기 위해 GunController 를 수정했다.
1public class GunController : MonoBehaviour
2{
3    ...
4
5    [Header("Accuracy")]
6    public float circleRadius = 0.5f;
7    public float circleDistance = 10f;
8
9    ...
10
11    private void FixedUpdate()
12    {
13        // DebugExtension.DebugCircle(muzzleFireStart.transform.position + muzzleFireStart.forward * circleDistance, muzzleFireStart.forward, Color.yellow, circleRadius);
14    }
15
16    private Vector3 ApplyAccuracy()
17    {
18        Vector2 randomOffset = Random.insideUnitCircle;
19        randomOffset *= circleRadius;
20
21        Vector3 destination = muzzleFireStart.transform.position;
22        destination += muzzleFireStart.forward * circleDistance;
23        destination += muzzleFireStart.up * randomOffset.y;
24        destination += muzzleFireStart.right * randomOffset.x;
25
26        // DebugExtension.DebugPoint(destination, Color.yellow, 0.5f, 1f);
27
28        return destination;
29    }
30
31    private void FireWeapon()
32    {
33        ...
34
35        RaycastHit hit = CheckHit(ApplyAccuracy());
36
37        ...
38    }
39
40    ...
41}
42

circleRadius

Random Point 가 만들어 질 수 있는 범위다. 클수록 탄착군이 넓어진다.
  • circleRadius = 0.2
https://velog.velcdn.com/images/lutca1320/post/ec4c18c1-2220-4679-8c35-b29b6ca4b1c5/image.gif
  • circleRadius = 1
https://velog.velcdn.com/images/lutca1320/post/e103cff4-e9db-4da2-b03b-8146bfc4688d/image.gif

circleDistance

Random Point 가 만들어지는 거리다. 클수록 탄착군이 좁아진다.
  • circleDistance = 10
https://velog.velcdn.com/images/lutca1320/post/462f7ce8-18ed-4a30-bb56-e71298aefcc9/image.gif
  • circleDistance = 2
https://velog.velcdn.com/images/lutca1320/post/6653a3b1-bf3e-4ba6-9708-6489de63a070/image.gif