unity3D学习【功能实现】之九:鼠标拖动图片

[原创]unity3D学习【功能实现】之九:鼠标拖动图片
点击查看动态图
这个好像只能用在ugui下,也就是说用在Canvas下的所有对象。
一,首先是将Cancas的Render mode设置为World Space,另外的模式最后我会提一下。
不管哪个模式都是涉及的 鼠标的坐标转换
二,在Cancas下新建一个Panel,把Cancas大小设为width:80,Height:80,Panel也设置为80*80,或者也可以直接把Panel设置为撑满整个画布Cancas,可见我这样也就是直接把Cancas当gameobject用了
三,Panel挂一个脚本Panelmove.cs,代码后面会给出。
四,我们给Panel,添加event trigger组建,添加完之后,然后再添加响应的事件ADD New EventType,里面有10多个事件选项。这里我就添加了两个,pointer Down和Drag。
五,接下来是添加这两个事件的响应的函数了,把Panel拖两次拖到这两个事件的runtime下面,然后选择响应的函数,也就是要做的事情,当然现在什么都选不了,因为函数还没写的,代码如下。
public class Panelmove : MonoBehaviour {
    private Vector3 offset;
    public void OnpointDown(){//第一个函数,起这个名字,到时候好选择

        offset=transform.position- Camera.main.ScreenToWorldPoint (Input.mousePosition);
           //坐标转换一下,先取得Panel中心坐标和鼠标的差值
    }
    public void OnDrag(){//第二函数
    

        transform.position=offset+Camera.main.ScreenToWorldPoint (Input.mousePosition);
   //Drag就是拖动的意思,在拖动的时候,物体跟着鼠标
    }
    void Update () {
    
    }
}



结束,完成了简单的拖动功能,当然可以加点小功能
transform.localScale = new Vector3 (1.2f,1.2f);,鼠标点击和放开的时候,panel变大和还原。

你可能感兴趣的:(unity2d/3d)