public override void OnSimulateStart_EnhancementEnabled() { firstPerson = fixedCamera.CamMode == FixedCameraBlock.Mode.FirstPerson; //Initialise the SmoothLook component fixedCameraController = FindObjectOfType <FixedCameraController>(); mouseOrbit = FindObjectOfType <MouseOrbit>(); foreach (var camera in fixedCameraController.cameras) { if (camera.BuildIndex == selfIndex) { if (firstPersonMode) { smooth = Mathf.Clamp01(firstPersonSmooth); } else { smooth = Mathf.Clamp01(camera.SmoothSlider.Value); } SetSmoothing(); } } newCamFOV = orgCamFOV = fixedCamera.fovSlider.Value; camFOVSmooth = Mathf.Exp(smooth) / Mathf.Exp(1) / 2f; if (cameraLookAtToggled) { // Initialise searchStarted = targetInitialCJOrHJ = false; pauseTracking = autoSearch = targetAquired = true; float searchAngleMax = Mathf.Clamp(Mathf.Atan(Mathf.Tan(fixedCamera.fovSlider.Value * Mathf.Deg2Rad / 2) * Camera.main.aspect) * Mathf.Rad2Deg, 0, 90); searchAngle = Mathf.Clamp(searchAngle, 0, searchAngleMax); target = null; if (!StatMaster.isMP) { clustersInSafetyRange.Clear(); foreach (var cluster in Machine.Active().simClusters) { if ((cluster.Base.transform.position - fixedCamera.transform.position).magnitude < safetyRadiusAuto) { clustersInSafetyRange.Add(cluster); } } } StopAllCoroutines(); } }
public override void OnSimulateStart_EnhancementEnabled() { base.OnSimulateStart_EnhancementEnabled(); channelList = BB.BuildingBlock.GetComponent <ArmorScript>().channelList; channelIndex = BB.BuildingBlock.GetComponent <ArmorScript>().channelIndex; fcc = GameObject.FindObjectOfType <FixedCameraController>(); if (channelIndex < 0 || fcc == null) { return; } rt = new RenderTexture(Mathf.Clamp((int)widthPixelValue.Value, 0, 1920), Mathf.Clamp((int)heightPixelValue.Value, 0, 1080), 0); cameraObject = new GameObject("WatchCamera"); cameraObject.transform.SetParent(transform); watchCamera = cameraObject.AddComponent <Camera>(); watchCamera.CopyFrom(Camera.main); watchCamera.targetTexture = rt; screenObject = GameObject.CreatePrimitive(PrimitiveType.Plane); screenObject.name = "Screen"; Destroy(screenObject.GetComponent <MeshCollider>()); screenObject.transform.SetParent(transform); screenObject.transform.position = transform.position; screenObject.transform.rotation = transform.rotation; screenObject.transform.localPosition = Vector3.forward * 0.25f; screenObject.transform.localEulerAngles = new Vector3(90, 0, 0); screenObject.transform.localScale = Vector3.one * 0.07f; mr = screenObject.transform.GetComponent <MeshRenderer>(); mr.material.shader = Shader.Find("Particles/Alpha Blended"); mr.material.mainTexture = rt; mr.sortingOrder = 50; stickToCamera(channelIndex); }
void FixedUpdate() { if (!StatMaster.levelSimulating) { if (playerGroupedRockets.Count > 0) { playerGroupedRockets.Clear(); } } if (PlayerMachine.GetLocal() != null) { if (PlayerMachine.GetLocal().InternalObject.isSimulating) { if (isFirstFrame) { isFirstFrame = launchStarted = false; cameraController = FindObjectOfType <FixedCameraController>(); rocketTargetDict.Clear(); } } else { if (!isFirstFrame) { if (playerGroupedRockets.ContainsKey(PlayerMachine.GetLocal().InternalObject.PlayerID)) { playerGroupedRockets.Remove(PlayerMachine.GetLocal().InternalObject.PlayerID); } rocketTargetDict.Clear(); isFirstFrame = true; } } } if (!isFirstFrame) { if (PlayerMachine.GetLocal() != null && rocketTargetDict != null && !isFirstFrame) { if (rocketTargetDict.Count == 0) { iAmLockedByRocket = false; } else { foreach (var rocketTargetPair in rocketTargetDict) { if (PlayerMachine.GetLocal() != null) { if (rocketTargetPair.Value == (StatMaster.isMP ? PlayerMachine.GetLocal().Player.NetworkId : 0)) { iAmLockedByRocket = true; break; } else { iAmLockedByRocket = false; } } else { iAmLockedByRocket = false; } } } } } }