Skip to content

Commit f7152f2

Browse files
authored
feat: new gizmo for navigation
1 parent 2ce78ee commit f7152f2

File tree

16 files changed

+367
-101
lines changed

16 files changed

+367
-101
lines changed
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
version https://git-lfs.github.com/spec/v1
2+
oid sha256:8255a2775bd738ae53f914cd9b89947a305621d00d91b97f3240bf06062c7152
3+
size 35500

Assets/Environment/Models/Target.fbx.meta

Lines changed: 109 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Environment/Prefabs/Doc.prefab

Lines changed: 14 additions & 14 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Environment/Shaders/InteractionGizmo.shader

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Shader "GUI/InteractionGizmo"
3434
Cull Off
3535
Lighting Off
3636
ZWrite Off
37-
ZTest LEqual
37+
ZTest Always
3838
Blend One OneMinusSrcAlpha
3939

4040
Pass

Assets/Player/LTMaterial.mat

Lines changed: 9 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Assets/Player/ManagerStates/ExploreState.cs

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ private enum Command {
1717
[Inject] [SerializeField] private PlayerChannel _players;
1818
[Inject] [SerializeField] private OverlayChannel _overlay;
1919
[Inject] [SerializeField] private PlayerConfig _config;
20-
[Inject] [SerializeField] private GameObject _targetPrefab;
20+
[Inject] [SerializeField] private TargetController _targetPrefab;
2121
[SerializeField] private InputActionReference _targetAction;
2222

2323
private Command _currentCommand = Command.None;
2424
private Interactable _interactable;
2525
private Vector3 _targetPosition;
2626
private PlayerType _currentPlayer = PlayerType.None;
2727
private PlayerType _commandedPlayer = PlayerType.None;
28-
private GameObject _target;
28+
private TargetController _target;
29+
private Dynamics _dynamics;
2930

3031
private PlayerController CurrentController => _players[_currentPlayer];
3132

@@ -37,9 +38,8 @@ public PlayerType CurrentPlayer {
3738
}
3839
_currentPlayer = value;
3940
CurrentController.SetFocus(1);
40-
_target.SetActive(value != PlayerType.None);
41-
_target.GetComponent<MeshRenderer>().material =
42-
_players[value]?.Material;
41+
_target.Visible = false;
42+
_target.Material = _players[value]?.Material;
4343
}
4444
}
4545

@@ -49,16 +49,18 @@ protected override void Awake() {
4949
}
5050

5151
public override void OnEnter() {
52+
base.OnEnter();
5253
_currentPlayer = PlayerType.None;
5354
_overlay.HUD.SetActive(true);
5455
_overlay.HUD.SetInteractive(true);
5556
Manager.CameraWeight.Settle();
5657
}
5758

5859
public override void OnExit() {
60+
base.OnExit();
5961
_overlay.HUD.SetActive(false);
6062
_overlay.HUD.SetInteractive(false);
61-
_target.SetActive(false);
63+
_target.Visible = false;
6264
}
6365

6466
public override void OnUpdate() {
@@ -76,7 +78,8 @@ public override void OnUpdate() {
7678
}
7779

7880
int interactionMask = _config.InteractionMask;
79-
if (!_players.LT.InteractState.IsActive && !_players.RT.InteractState.IsActive) {
81+
if (!_players.LT.InteractState.IsActive
82+
&& !_players.RT.InteractState.IsActive) {
8083
interactionMask |= _config.PlayerMask;
8184
}
8285
if (!EventSystem.current.IsPointerOverGameObject()
@@ -106,9 +109,15 @@ public override void OnUpdate() {
106109
if (currentController?.NavigateState.IsActive ?? false) {
107110
Manager.CameraWeight.Set(currentController.IsLT ? 0.2f : 0.8f);
108111
_target.transform.position = currentController.TargetPosition;
109-
_target.SetActive(true);
112+
if (currentController.CommandAction.action.IsPressed()) {
113+
_dynamics.ForceSet(0.5f);
114+
} else {
115+
_dynamics.Set(1f);
116+
}
117+
_target.Scale = _dynamics.Update(in SpringConfig.Medium).x;
118+
_target.Visible = true;
110119
} else {
111-
_target.SetActive(false);
120+
_target.Visible = false;
112121
}
113122
}
114123

Assets/Player/Prefab/PlayerManager.prefab

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)