点击查看动态图 这个好像只能用在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变大和还原。
转载请注明原文地址: https://ju.6miu.com/read-1303117.html