Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //In LockOnSystem.cs (component of turret)
- //In Update method
- private void CheckCrosshair()
- {
- turretDirection = MyExtensions.GetDirectionFromAngle3D(transform.rotation.eulerAngles.y);
- RaycastHit hit;
- if (Physics.Raycast(bulletEmitter.position, turretDirection, out hit))
- {
- Debug.DrawLine(bulletEmitter.position, hit.point, Color.green);
- switch (hit.transform.tag)
- {
- case "Enemy":
- case "Friendly":
- SpawnCrosshair(hit);
- break;
- default:
- if(locked)
- DespawnCrosshair();
- break;
- }
- }
- }
- private void DespawnCrosshair()
- {
- locked = false;
- targets[currentTargetIndex].SetCrosshair(locked);
- currentTargetIndex = -1;
- }
- private void SpawnCrosshair(RaycastHit hit)
- {
- locked = true;
- currentTargetIndex = hit.transform.GetComponent<Target>().id;
- targets[currentTargetIndex].SetCrosshair(locked);
- }
- //In Target.cs (component of target GameObject)
- //Plays lock-on animations
- public void SetCrosshair(bool isLocked)
- {
- crosshair.transform.position = _cam.WorldToScreenPoint(transform.position);
- crosshairAnim.SetBool("Locked", isLocked);
- crosshairAnim.SetBool("isEnemy", isEnemy);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement