using System; using UnityEngine; public class AimReference : MonoBehaviour { [NonSerialized] public Vector3 positionOffset; [NonSerialized] public Quaternion rotationOffset; [NonSerialized] public AimReferenceGroup group; [NonSerialized] public int index = -1; [NonSerialized] public ScopeBase scopeBase; [SerializeField] private GameObject scopeBindingObject; public bool asReference; private void OnEnable() { if (!group) { return; } scopeBase = GetComponentInParent(); Transform refTrans = scopeBase ? scopeBase.transform : transform.parent; rotationOffset = Quaternion.Inverse(refTrans.rotation) * transform.rotation; positionOffset = refTrans.InverseTransformDirection(transform.position - refTrans.position); group.UpdateEnableStates(); } private void OnDisable() { if (!group) { return; } group.UpdateEnableStates(); } public void UpdateEnableState(bool state) { if (scopeBindingObject) { scopeBindingObject.SetActive(state); } } }