Beispiel #1
0
 void ScaleOcean(int in_OceanScale)
 {
     OceanScale = in_OceanScale;
     gameObject.transform.localScale = new Vector3(in_OceanScale, in_OceanScale, in_OceanScale);
     foreach (Material TileMat in LODMats)
     {
         TileMat.SetInt("_OceanScale", in_OceanScale);
     }
 }
Beispiel #2
0
    void AdjustOceanForCamera()
    {
        if (MainCam.transform.hasChanged)
        {
            //Debug.Log("Changed!!");
            MainCam.transform.hasChanged = false;
            int CameraHeightLevel = Mathf.FloorToInt(Mathf.Sqrt(Mathf.Abs(MainCam.transform.position.y) / CameraHeight0)) + 1;

            ScaleOcean(CameraHeightLevel);

            float   CameraFEstimateDist = MainCam.transform.position.y * ArcTanHalfFOV;
            Vector3 Cal_OceanCenter     = MainCam.transform.forward * CameraFEstimateDist + MainCam.transform.position;

            Vector3 CurPos = gameObject.transform.position;
            gameObject.transform.position = new Vector3(Cal_OceanCenter.x, CurPos.y, Cal_OceanCenter.z);

            foreach (Material TileMat in LODMats)
            {
                TileMat.SetVector("_CenterPos", Cal_OceanCenter);
            }
        }
    }