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

一、第三人称跟随

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);
    }
}
摄像机第三人称跟随与图片拖动_第1张图片
测试

二、图片的拖动

 //定义一张图片
 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);//当松开鼠标的时候位置在靠左那么图片就会在左边否则在右边
           }
       }
摄像机第三人称跟随与图片拖动_第2张图片
测试.gif

你可能感兴趣的:(摄像机第三人称跟随与图片拖动)