鼠标控制物体移动旋转缩放

Alt
给相机添上o( ̄︶ ̄)o

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Operation : MonoBehaviour
{
    
    
    public GameObject obj;
    Ray ray;
    private float scrow = 0;
    void Update()
    {
    
    
        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        //左键移动
        if (Input.GetMouseButton(0))
        {
    
    
            RaycastHit hit;
            if (Physics.Raycast(ray, out hit))
            {
    
    
                if (hit.transform.tag == "cube")
                {
    
    
                    Debug.DrawLine(transform.position, hit.point);
                    obj.transform.position = new Vector3(hit.point.x, hit.point.y, obj.transform.position.z);
                }
            }
        }
        //右键控制上下左右旋转
        if (Input.GetMouseButton(1))
        {
    
    
            obj.transform.Rotate(Vector3.up, -Time.deltaTime * 200 * Input.GetAxis("Mouse X"), Space.World);
            obj.transform.Rotate(Vector3.right, Time.deltaTime * 200 * Input.GetAxis("Mouse Y"), Space.World);
        }
        //滚轮缩放(通过移动物体视觉放大,并非本身放大)
        if (Input.GetAxis("Mouse ScrollWheel") != 0)
        {
    
    
            scrow = Input.GetAxis("Mouse ScrollWheel");
            obj.transform.position += (transform.position - obj.transform.position).normalized * scrow;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_43928707/article/details/87195324