Example #1
0
    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);
    }
Example #2
0
    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);
    }
Example #3
0
 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);
             }
         }
     }
 }
Example #4
0
    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);
    }
Example #6
0
    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);
    }
Example #7
0
    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;
    }
Example #8
0
    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);
    }
Example #9
0
    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);
    }