void Start()
    {
        _Instance           = this;
        camPosEvent         = BikeCamEvent.Null;
        NetworkServerScript = NetworkServerNet.GetInstance();

        if (mMotionBlur == null)
        {
            Debug.LogWarning("mMotionBlur is null");
        }
        BlurEffectScript.enabled = false;

        float[] distances = new float[32];
        for (int i = 0; i < 32; i++)
        {
            distances[i] = 400f;
        }
        distances[9]              = 260;
        distances[15]             = 100;
        distances[18]             = 600;
        distances[19]             = 50;
        distances[13]             = 250;
        distances[20]             = 50;
        distances[21]             = 250;
        camera.layerCullDistances = distances;

        Random.seed = (int)(Time.realtimeSinceStartup * 100000f);

        RainObj.SetActive(false);

        if (NetworkServerScript != null && !NetworkServerScript.GetIsServer())
        {
            Invoke("callBackgroundAudio", 3.5f);
        }

        mCamTran = transform;

        Screen.showCursor = false;
        smoothVal         = mSmooth * 0.015f;
        //smoothValTmp = smoothVal;

        if (mBike != null)
        {
            mBikePlayer = mBike;
        }

        mMotionBlur = gameObject.GetComponent <MotionBlur>();
        //		if(mMotionBlur == null)
        //		{
        //			ScreenLog.Log("BikeCamera::Start -> mMotionBlur is null!");
        //		}
    }
    public void setBikePlayer(GameObject bikePlayer)
    {
        if (bikePlayer != null)       // && mBikePlayer == null)
        {
            if (mBikePlayer != null && mBikePlayer.name == bikePlayer.name)
            {
                return;
            }
            //ScreenLog.Log("set camera aim to " + bikePlayer.name);

            Map.Player  = bikePlayer;
            mBikePlayer = bikePlayer;

            bikeScript = mBikePlayer.GetComponent <bikeNetUnity>();
            if (bikeScript == null)
            {
                Debug.LogWarning("BikeCamera::Start -> bikeScript is null!");
            }
            else
            {
                //ScreenLog.Log("setBikePlayer -> init");
                smoothPer = 1f;
                //isClone = true;
                mAimPoint      = bikeScript.mAimPoint;
                mCamPoint_back = bikeScript.mCamPoint_back;
                //mCamPoint_forward = bikeScript.mCamPoint_forward;
                mCamPoint_left = bikeScript.mCamPoint_left;
                //mCamPoint_right = bikeScript.mCamPoint_right;
                //mCamPoint_piaoYi = bikeScript.mCamPoint_piaoYi;
                backPointParent = mCamPoint_back.parent;
                backLocalPos    = mCamPoint_back.localPosition;

                HangPaiTrans = bikeScript.HangPaiTrans;
                //JingZhiMiaoZhun = bikeScript.JingZhiMiaoZhun;
                MiaoZhunGenSui = bikeScript.MiaoZhunGenSui;

                camPosEvent = BikeCamEvent.Null;
            }
        }
    }
    public void setBikeCamPosEvent(BikeCamEvent camEvent, CamPosEvent eventScript)
    {
        switch (camEvent)
        {
        case BikeCamEvent.JingZhi:
            break;

        case BikeCamEvent.HangPai:
            if ((int)camPosEvent != (int)BikeCamEvent.HangPai)
            {
                //ScreenLog.Log("setBikeCamPosEvent -> set hangPai, camPosEvent " + camPosEvent
                // + ", BikeCamEvent.HangPai " + BikeCamEvent.HangPai);

                camPosEvent = BikeCamEvent.HangPai;
                mzgsIndex   = Random.Range(0, HangPaiTrans.Length - 1);
                //ScreenLog.Log("setBikeCamPosEvent -> set hangPai index = " + mzgsIndex);

                transform.position = HangPaiTrans[mzgsIndex].position;
                transform.LookAt(mAimPoint);
            }
            break;

        case BikeCamEvent.JingZhiMiaoZhun:
//			if(camPosEvent != BikeCamEvent.JingZhiMiaoZhun)
//			{
//				mzgsIndex = Random.Range(0, JingZhiMiaoZhun.Length - 1);
//				transform.position = JingZhiMiaoZhun[mzgsIndex].position;
//				transform.LookAt(mAimPoint);
//			}
            break;

        case BikeCamEvent.MiaoZhunGenSui:
            if (camPosEvent != BikeCamEvent.MiaoZhunGenSui)
            {
                //mzgsIndex = Random.Range(0, MiaoZhunGenSui.Length - 1);
                mzgsIndex = (int)eventScript.MiaoZhunGenSuiNum;
                if (mzgsIndex == (int)MiaoZhunGenSuiCtrl.THIRD_PERSON)
                {
                    transform.position = mCamPoint_back.position;
                }
                else
                {
                    transform.position = MiaoZhunGenSui[mzgsIndex].position;
                }
                transform.LookAt(mAimPoint);
            }
            break;

        case BikeCamEvent.TeDingDongZuo:
            break;

        case BikeCamEvent.GameOver:
            if (camPosEvent != BikeCamEvent.MiaoZhunGenSui)
            {
                mzgsIndex          = Random.Range(0, MiaoZhunGenSui.Length - 1);
                transform.position = MiaoZhunGenSui[mzgsIndex].position;
                transform.LookAt(mAimPoint);
            }
            break;

        default:
            break;
        }
        camPosEvent = camEvent;
    }