public Vector3 GetWorldHeight(Vector3 Pos) { TsLayerMask layerMask = TsLayer.NOTHING + TsLayer.TERRAIN; Pos.y += 1000f; RaycastHit raycastHit; if (!Physics.Raycast(Pos, Vector3.down, out raycastHit, 1500f, layerMask)) { return(Vector3.zero); } if (raycastHit.point != Vector3.zero) { Debug.Log(string.Concat(new object[] { "HitPoint : ", raycastHit.point, " ", Pos })); } Vector3 result = new Vector3(Pos.x, raycastHit.point.y, Pos.z); return(result); }
private Vector3 CullisionCamera() { this.v3CullisionCamera = this.target.position - this.rotation * Vector3.forward * this.currentDistance; this.v3CameraDirection = this.v3CullisionCamera - this.target.position; this.v3CameraDirection = this.v3CameraDirection.normalized; float num = this.currentDistance; if (this.m_bUseCameraLevel) { CAMERASETTING_DATA cameraData = NrTSingleton <NkCameraSettingsManager> .Instance.GetCameraData(this.m_nCameraLevel); if (cameraData != null) { this.fTargetHeight = Mathf.Lerp(this.m_fBeforeHeight, this.fLevelHeight, (Time.time - this.m_fLerpStartTime) / cameraData.m_LerpTime); } } this.position = this.target.position + new Vector3(0f, this.fTargetHeight, 0f); TsLayerMask layerMask = TsLayer.EVERYTHING - TsLayer.PC - TsLayer.PC_DECORATION - TsLayer.PC_OTHER - TsLayer.NPC - TsLayer.FADE_OBJECT; if (Physics.Raycast(this.position, this.v3CameraDirection, out this.rayCullisiton, num + 1f, layerMask)) { float num2 = this.rayCullisiton.distance - 0.1f; num2 -= this.minDistance; num2 /= num - this.minDistance; this.fTargetHeight = Mathf.Lerp(2f, this.fLevelHeight, Mathf.Clamp(num2, 0f, 1f)); this.position = this.target.position + new Vector3(0f, this.fTargetHeight, 0f); } if (Physics.Raycast(this.position, this.v3CameraDirection, out this.rayCullisiton, num + 1f, layerMask)) { num = this.rayCullisiton.distance - 0.1f; } this.v3CullisionCamera = this.position - this.rotation * Vector3.forward * num; return(this.v3CullisionCamera); }
private void _DetectHitBuilding() { TsFadeRayCaster.TsFadeObjectContainer tsFadeObjectContainer = this.fadeObjectContainer; if (tsFadeObjectContainer == null) { Debug.Log("Not Found FadeContainer!"); return; } for (int i = 0; i < tsFadeObjectContainer.TargetCount; i++) { GameObject fadeTargetforList = tsFadeObjectContainer.GetFadeTargetforList(i); if (!(fadeTargetforList == null) && !(Camera.main == null)) { Vector3 direction = fadeTargetforList.transform.position - Camera.main.transform.position; direction.Normalize(); float distance = Vector3.Distance(Camera.main.transform.position, fadeTargetforList.transform.position); Debug.DrawLine(Camera.main.transform.position, fadeTargetforList.transform.position, Color.red); TsLayerMask layerMask = TsLayer.IGNORE_RAYCAST; RaycastHit[] array = Physics.RaycastAll(Camera.main.transform.position, direction, distance, layerMask); if (array.Length > 0) { this._OnFadeOut(array); this._OnFadeIn(array); } else { this._OnFadeIn(array); } } } }
private void _Collect(GameObject go, GameObject rootGO, TsSceneSwitcher.ESceneType eSceneType, bool isActive) { if (go == null || rootGO == null) { TsLog.LogError("Cannot be null~!!!!! ", new object[0]); return; } TsSceneSwitcherMark tsSceneSwitcherMark = go.GetComponent <TsSceneSwitcherMark>(); if (tsSceneSwitcherMark == null) { tsSceneSwitcherMark = this._AddOrGetComponent(go, eSceneType); if (tsSceneSwitcherMark == null) { TsLog.LogError("Must Added~! Check logic~!", new object[0]); return; } } if (tsSceneSwitcherMark.IsCollected) { return; } if (go.transform.parent == null) { go.transform.parent = rootGO.transform; } TsSceneSwitcher._SwitchDataList switchDataList = this._GetSwitchData_List(eSceneType); if (switchDataList == null) { TsLog.LogError("Cannot found~! key= " + rootGO.name, new object[0]); return; } TsSceneSwitcher.SwitchData switchData = this._MakeSwitchData(tsSceneSwitcherMark, rootGO.name); if (switchData != null) { tsSceneSwitcherMark.RootGOName = rootGO.name; tsSceneSwitcherMark.IsCollected = true; tsSceneSwitcherMark.RefSwitchData = switchData; switchDataList.Add(switchData); } Light[] componentsInChildren = go.GetComponentsInChildren <Light>(); if (componentsInChildren != null) { Light[] array = componentsInChildren; for (int i = 0; i < array.Length; i++) { Light light = array[i]; TsLayerMask layerMask = new TsLayerMask((uint)light.cullingMask); light.cullingMask = layerMask - TsLayer.GUI; } } go.SetActive(isActive); }
public static float GetGroundPosition(float x, float z) { Vector3 origin = new Vector3(x, 1000f, z); Ray ray = new Ray(origin, new Vector3(0f, -1f, 0f)); TsLayerMask layerMask = TsLayer.NOTHING + TsLayer.TERRAIN; RaycastHit raycastHit; if (Physics.Raycast(ray, out raycastHit, 2000f, layerMask)) { return(raycastHit.point.y); } return(1000f); }
public float GetBattleMapHeight(Vector3 pos) { Terrain component = this.m_BattleTerrain.GetComponent <Terrain>(); float num = 0f; if (component != null) { num = component.SampleHeight(pos) + this.m_BattleTerrain.transform.position.y; } TsLayerMask layerMask = TsLayer.NOTHING + TsLayer.TERRAIN; pos.y += 1000f; if (!NkRaycast.Raycast(new Ray(pos, Vector3.down), 1500f, layerMask)) { return(num); } RaycastHit hIT = NkRaycast.HIT; if (hIT.point != Vector3.zero && num < hIT.point.y) { num = hIT.point.y; } return(num); }
private void ChangeExtraQuality(TsQualityManager.Level level, TsQualityManager.GameVersion version, Camera camera) { ITsGameQuality currQuality = TsQualityManager.Instance.CurrQuality; camera.farClipPlane = TsMobileQualityManager.mCameraFar[(int)level]; float[] array = new float[] { 20.1f, 35f, 50f, 65f, 80f }; float[] array2 = new float[] { 100f, 125f, 150f, 200f, 250f }; float[] array3 = new float[] { 150f, 200f, 250f, 400f, 400f }; float num = 20f; float num2 = 1f - num / 100f; if (version == TsQualityManager.GameVersion.LITE_VER) { for (int i = 0; i < array.Length; i++) { array[i] *= num2; } for (int j = 0; j < array2.Length; j++) { array2[j] *= num2; } for (int k = 0; k < array3.Length; k++) { array3[k] *= num2; } } float[] layerCullDistances = camera.layerCullDistances; layerCullDistances[TsLayer.SMALL_OBJECT] = array[(int)level]; layerCullDistances[TsLayer.MEDIUM_OBJECT] = array2[(int)level]; layerCullDistances[TsLayer.LARGE_OBJECT] = array3[(int)level]; camera.layerCullDistances = layerCullDistances; MonoBehaviour monoBehaviour = camera.GetComponent("MobileBloom") as MonoBehaviour; if (monoBehaviour != null) { monoBehaviour.enabled = currQuality.Bloom; } monoBehaviour = (camera.GetComponent("TsMobileVignetting") as MonoBehaviour); if (monoBehaviour != null) { monoBehaviour.enabled = (level >= TsQualityManager.Level.HIGHEST); } int[] array4 = new int[] { 200, 300, 300, 400, 400 }; Shader.globalMaximumLOD = array4[(int)level]; TsLayerMask layerMask = TsLayer.NOTHING; switch (level) { case TsQualityManager.Level.LOWEST: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.LOW: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.MEDIUM: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_MIDDLE + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.HIGH: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_HIGH + TsLayer.EFFECT_MIDDLE + TsLayer.EFFECT_LOW; break; case TsQualityManager.Level.HIGHEST: layerMask = TsLayer.LARGE_OBJECT + TsLayer.MEDIUM_OBJECT + TsLayer.SMALL_OBJECT + TsLayer.EFFECT_HIGH + TsLayer.EFFECT_MIDDLE + TsLayer.EFFECT_LOW; break; } camera.cullingMask = layerMask + this.DEFAULT_RENDERABLE_LAYER; }
public int CharClickLayerMask() { TsLayerMask layerMask = TsLayer.EVERYTHING - TsLayer.DEFAULT - TsLayer.PC - TsLayer.PC_DECORATION - TsLayer.PC_OTHER - TsLayer.NPC - TsLayer.TERRAIN - TsLayer.IGNORE_RAYCAST; return(layerMask); }
public int CharColliderLayerMask() { TsLayerMask layerMask = TsLayer.EVERYTHING - TsLayer.DEFAULT - TsLayer.PC - TsLayer.PC_DECORATION - TsLayer.PC_OTHER - TsLayer.NPC - TsLayer.FADE_OBJECT - TsLayer.IGNORE_RAYCAST - TsLayer.IGNORE_PICK; return(layerMask); }