美文网首页
摄像机第三人称跟随与图片拖动

摄像机第三人称跟随与图片拖动

作者: _凉笙 | 来源:发表于2016-12-27 01:54 被阅读0次

    一、第三人称跟随

    public class newcube : MonoBehaviour {
        public GameObject obj;
        // 摄像机在水平方向与对象的距离
        private float z=5f;
        // 摄像机在垂直方向与对象的距离
        private float y = 3f;
        //保存摄像机跟随的位置
        private Vector3 pri;
        // 过渡速度Z
        private float som=3f;
         
        void Start()
        {
    
        }
        void Update() {
            //移动
            if (Input.GetKey(KeyCode.W))
            {
                obj.transform.position = obj.transform.position + Vector3.forward;
            }
            if (Input.GetKey(KeyCode.S))
            {
                obj.transform.position = obj.transform.position + Vector3.back;
            }
            if (Input.GetKey(KeyCode.A))
            {
                obj.transform.position = obj.transform.position + Vector3.left;
            }
            if (Input.GetKey(KeyCode.D))
            {
                obj.transform.position = obj.transform.position + Vector3.right;
            }    
        }
        
        void LateUpdate () {
            //摄像机跟随后的位置
            pri = obj.transform.position + Vector3.up * y - Vector3.forward * z;
            // 对当前位置进行差值计算  
            this.transform.position = Vector3.Lerp(transform.position,pri,Time.deltaTime*som);
            // 使摄像机观察对象,摄像机指向目标游戏对象   
            transform.LookAt(obj.transform);
        }
    }
    
    测试

    二、图片的拖动

     //定义一张图片
     public Texture2D pic;
    //定义一个bool值
     private bool pl;
    //定义一个GUI坐标的X值和Y的值
     private  float EndX = 0;
     private  float EndY = 0;
    void Start()
        {
            pl = false;//开始的时候给布尔值一个false
        }  
     void Update() {
            if (Input.GetMouseButton(0)){
                pl = true;
            }else{
                pl = false;
            }
        void OnGUI() {
            if (pl==true)
            {
                GUI.DrawTexture(new Rect(Input.mousePosition.x - pic.width / 2, Screen.height - Input.mousePosition.y - pic.height / 2, pic.width, pic.height), pic);//当点击的时候见图片位置放在鼠标的中心
                EndX =Input.mousePosition.x-pic.width/2;//GUI坐标的X值
                EndY = Screen.height - Input.mousePosition.y - pic.height / 2;//GUI坐标的Y值
            }
            else {
                if (Input.mousePosition.x <= Screen.width / 2)//如果鼠标点击的X轴小于屏幕宽度的一半
                {
                    EndX = 0;//让其GUI的X坐标回到原点
                }
                else {
                    EndX = Screen.width - pic.width;//否则让GUI的X值到屏幕宽度的最大值
                }
                
                GUI.DrawTexture(new Rect(EndX, EndY, pic.width, pic.height), pic);//当松开鼠标的时候位置在靠左那么图片就会在左边否则在右边
               }
           }
    
    测试.gif

    相关文章

      网友评论

          本文标题:摄像机第三人称跟随与图片拖动

          本文链接:https://www.haomeiwen.com/subject/xnedvttx.html