/// <summary> /// /// </summary> protected override void Awake() { if (!photonView.IsMine || bl_CameraViewSettings.Instance.gamePlayerView == MFPSGamePlayerView.FirstPersonOnly) { enabled = false; return; } else { base.Awake(); } if (!cacheReferences) { SwitchViewKey = bl_CameraViewSettings.Instance.SwitchViewKey; playerReferences = GetComponent <bl_PlayerReferences>(); playerSettings = playerReferences.playerSettings; playerNetwork = playerReferences.playerNetwork; playerCamera = playerSettings.PlayerCamera.transform; weaponCamera = playerReferences.weaponCamera; cameraParent = playerCamera.parent; cameraShaker = playerReferences.cameraShaker; cameraRay = playerReferences.cameraRay; defaultFPPosition = playerCamera.localPosition; defaultFPRotation = playerCamera.localEulerAngles; #if UNITY_POST_PROCESSING_STACK_V2 weaponCameraEffects = weaponCamera.GetComponent <PostProcessLayer>(); #endif cacheReferences = true; } SetDefaultView(); }
/// <summary> /// /// </summary> /// <param name="c"></param> void OnTriggerEnter(Collider c) { if (bl_GameManager.Instance.GameMatchState == MatchState.Waiting) { return; } #if GR if (GetGameMode == GameMode.GR) { return; } #endif // we only call Pickup() if "our" character collides with this PickupItem. // note: if you "position" remote characters by setting their translation, triggers won't be hit. PhotonView v = c.GetComponent <PhotonView>(); if (PickupOnCollide && v != null && v.IsMine && c.CompareTag(bl_PlayerSettings.LocalTag)) { Into = true; PUM.LastTrigger = this; localPlayerIn = v; if (CacheGun.Type == GunType.Knife) { if (v.GetComponentInChildren <bl_GunManager>(true).PlayerEquip.Exists(x => x != null && x.GunID == GunID)) { Equiped = true; } else { Equiped = false; } } if (m_DetectMode == DetectMode.Raycast) { bl_CameraRay cr = v.GetComponentInChildren <bl_CameraRay>(); if (cr != null) { cr.SetActiver(true, uniqueLocal); } } else if (m_DetectMode == DetectMode.Trigger) { UIReferences.SetPickUp(true, GunID, this, Equiped); } } }
/// <summary> /// /// </summary> void OnTriggerExit(Collider c) { if (c.transform.CompareTag(bl_PlayerSettings.LocalTag) && Into) { Into = false; UIReferences.SetPickUp(false); if (localPlayerIn != null) { if (m_DetectMode == DetectMode.Raycast) { bl_CameraRay cr = localPlayerIn.GetComponentInChildren <bl_CameraRay>(); if (cr != null) { cr.SetActiver(false, uniqueLocal); } } localPlayerIn = null; } } }
protected override void OnDestroy() { base.OnDestroy(); if (Into) { if (UIReferences != null) { UIReferences.SetPickUp(false); } if (localPlayerIn != null) { if (m_DetectMode == DetectMode.Raycast) { bl_CameraRay cr = localPlayerIn.GetComponentInChildren <bl_CameraRay>(); if (cr != null) { cr.SetActiver(false, uniqueLocal); } } } } }