Example #1
0
    // Update is called once per frame
    void Update()
    {
        SceneMan.SetObserverTransform(this.transform);
        Debug.DrawLine(transform.position, transform.position + transform.forward * 100.0f);
        float _curSpeed = m_camSpeed;

        if (Input.GetKey(KeyCode.LeftShift))
        {
            _curSpeed /= m_accRatio;
        }
        if (Input.GetKey(KeyCode.LeftAlt))
        {
            _curSpeed *= m_accRatio;
        }

        //wsad控制摄像机移动
        if (Input.GetKey(KeyCode.W))
        {
            transform.position += transform.forward * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.S))
        {
            transform.position += -transform.forward * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.A))
        {
            transform.position += -transform.right * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.D))
        {
            transform.position += transform.right * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.Q))
        {
            transform.position += transform.up * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.Z))
        {
            transform.position += -transform.up * _curSpeed * Time.deltaTime;
        }

        //鼠标控制方向
        if (Input.GetKey(KeyCode.Mouse1))
        {
            mRotX += Input.GetAxis("Mouse X") * m_sensitivityX;
            mRotY += Input.GetAxis("Mouse Y") * m_sensitivityY;
            if (mRotY > 89.9f)
            {
                mRotY = 89.9f;
            }
            if (mRotY < -89.9f)
            {
                mRotY = -89.9f;
            }
            transform.localEulerAngles = new Vector3(-mRotY, mRotX, 0);
        }

        if (Input.GetKey(KeyCode.Mouse2))
        {
            Vector3 _cam = transform.localPosition;
            _cam += transform.right * Input.GetAxis("Mouse X") * 10.0f;
            _cam += transform.forward * Input.GetAxis("Mouse Y") * 10.0f;
            transform.localPosition = _cam;
        }
    }
Example #2
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(KeyCode.G) && false == start)
        {
            start = true;
            GameObject go = GameObject.Find("Player");
            if (go != null)
            {
                go.SetActive(false);
            }
            mTerrain.saveTerrain = true;
            //mCameraObj = GameObject.Find("GameMainCamera");
//			mCameraObj.GetComponent<FreeCamera>().enabled = true;
            //mCameraObj.GetComponent<CameraController>().enabled = false;
//			mCameraObj.GetComponent<GameMainGUI>().enabled = false;
            //mEditor.m_drawGizmo = true;

            mFloowObj = new GameObject("mapcenterObj");            //GameObject.Find("mapcenterObj");
            SceneMan.SetObserverTransform(mFloowObj.transform);

            mCamera                      = Camera.main;
            mCamera.clearFlags           = CameraClearFlags.Skybox;
            mCamera.farClipPlane         = 2500;
            mCamera.nearClipPlane        = 1;
            mCamera.orthographic         = true;
            mCamera.orthographicSize     = 256;
            mCamera.cullingMask          = mGroundLayer.value;
            mCamera.transform.position   = new Vector3(texSize / 2 + mIndex % mNumOneside * texSize, 1500, texSize / 2 + mIndex / mNumOneside * texSize);
            mCamera.transform.rotation   = new Quaternion(0.7f, 0, 0, 0.7f);
            mFloowObj.transform.position = mCamera.transform.position + 600 * Vector3.down;
            mtime = Time.time;

//			mCamera.targetTexture = rendertex;

            if (!Directory.Exists(Application.dataPath + "../../MiniMaps"))
            {
                Directory.CreateDirectory(Application.dataPath + "../../MiniMaps");
            }
//			mTerrain.lodMan.Refresh(new Vector3(mCamera.transform.position.x,mCamera.transform.position.y-500,mCamera.transform.position.z));//(mCamera.transform.position.x,mCamera.transform.position.y-500,mCamera.transform.position.z);
        }

//		if(Input.GetKeyDown(KeyCode.R))
//		{
//			GameObject go = GameObject.Find("Player");
//			if(go != null )
//			{
//				go.active = false;
//			}
//			mTerrain.saveTerrain = true;
//			mCameraObj = GameObject.Find("GameMainCamera");
//			mCameraObj.GetComponent<FreeCamera>().enabled = true;
//			mCameraObj.GetComponent<CameraController>().enabled = false;
//			mCameraObj.GetComponent<GameMainGUI>().enabled = false;
//			mEditor.m_drawGizmo = true;
//			mCamera = Camera.mainCamera;
//			mCamera.clearFlags = CameraClearFlags.Skybox;
//			mCamera.farClipPlane = 2500;
//			mCamera.nearClipPlane = 1;
//			mCamera.isOrthoGraphic = true;
//			mCamera.orthographicSize = 256;
//			mCamera.cullingMask = 1<< Pathea.Layer.VFVoxelTerrain;
//			mCamera.transform.position = new Vector3(texSize/2 + mIndex%mNumOneside * texSize,1500,texSize/2 + mIndex/mNumOneside * texSize);
//			mCamera.transform.rotation = new Quaternion(0.7f,0,0,0.7f);
////			mTerrain.lodMan.Refresh(new Vector3(mCamera.transform.position.x,mCamera.transform.position.y-500,mCamera.transform.position.z));//.initStartLocation(mCamera.transform.position.x,mCamera.transform.position.y-500,mCamera.transform.position.z);
//
//		}
//
//
//		if(mTerrain.chunkRebuildList.Count == 0)
//		{
//			if(Input.GetMouseButtonDown(1))
//			{
//				mMinimap.ReadPixels(new Rect(Screen.width/2-256,0,texSize,texSize),0,0);
//				mMinimap.Apply();
//				var bytes = mMinimap.EncodeToPNG();
//				File.WriteAllBytes(Application.dataPath + "/../../MiniMaps/MiniMap"+mIndex+".png", bytes);
//				GC.Collect();
//			}
//		}
    }
    // Update is called once per frame
    void Update()
    {
        SceneMan.SetObserverTransform(this.transform);
        Debug.DrawLine(transform.position, transform.position + transform.forward * 100.0f);
        float _curSpeed = m_camSpeed;

        if (Input.GetKey(KeyCode.LeftShift))
        {
            _curSpeed /= m_accRatio;
        }
        if (Input.GetKey(KeyCode.LeftAlt))
        {
            _curSpeed *= m_accRatio;
        }

        //wsad¿ØÖÆÉãÏñ»úÒƶ¯
        if (Input.GetKey(KeyCode.W))
        {
            transform.position += transform.forward * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.S))
        {
            transform.position += -transform.forward * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.A))
        {
            transform.position += -transform.right * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.D))
        {
            transform.position += transform.right * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.Q))
        {
            transform.position += transform.up * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.Z))
        {
            transform.position += -transform.up * _curSpeed * Time.deltaTime;
        }

        if (Input.GetKey(KeyCode.R))
        {
            transform.position = DefaultPos;
            transform.rotation = DefaultRot;
        }

        //Êó±ê¿ØÖÆ·½Ïò
        if (Input.GetKey(KeyCode.Mouse1))
        {
            Ray        cameraRay = GetComponent <Camera>().ScreenPointToRay(new Vector3(Screen.width / 2f, Screen.height / 2f, 0));
            RaycastHit hitInfo;
            if (Physics.Raycast(cameraRay, out hitInfo, 1000f))
            {
                mRotX += Input.GetAxis("Mouse X") * m_sensitivityX;
                mRotY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                mRotY  = Mathf.Clamp(mRotY, -89.9f, -5f);
                transform.localEulerAngles = new Vector3(-mRotY, mRotX, 0);
                transform.position         = hitInfo.point - Vector3.Distance(GetComponent <Camera>().transform.position, hitInfo.point) * transform.forward;
            }
            else
            {
                cameraRay = GetComponent <Camera>().ScreenPointToRay(new Vector3(Screen.width / 2f, Screen.height / 3f, 0));
                if (Physics.Raycast(cameraRay, out hitInfo, 1000f))
                {
                    mRotX += Input.GetAxis("Mouse X") * m_sensitivityX;
                    mRotY += Input.GetAxis("Mouse Y") * m_sensitivityY;
                    mRotY  = Mathf.Clamp(mRotY, -89.9f, -5f);
                    transform.localEulerAngles = new Vector3(-mRotY, mRotX, 0);
                    transform.position         = hitInfo.point - Vector3.Distance(GetComponent <Camera>().transform.position, hitInfo.point) * transform.forward;
                }
            }
        }

        if (Input.GetKey(KeyCode.Mouse2))
        {
            Vector3 _cam = transform.localPosition;
            _cam += transform.right * Input.GetAxis("Mouse X") * 10.0f;
            _cam += transform.forward * Input.GetAxis("Mouse Y") * 10.0f;
            transform.localPosition = _cam;
        }
    }