一段拖动物体的代码


    IEnumerator OnMouseDown()
    {
        var camera = Camera.mainCamera;
        if (camera)
        {
            //转换对象到当前屏幕位置
            Vector3 screenPosition = camera.WorldToScreenPoint(transform.position);


            //鼠标屏幕坐标
            Vector3 mScreenPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);
            //获得鼠标和对象之间的偏移量,拖拽时相机应该保持不动
            Vector3 offset = transform.position - camera.ScreenToWorldPoint(mScreenPosition);
            print("drag starting:" + transform.name);


            //若鼠标左键一直按着则循环继续
            while (Input.GetMouseButton(0))
            {


                //鼠标屏幕上新位置
                mScreenPosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z);


                // 对象新坐标
                transform.position = offset + camera.ScreenToWorldPoint(mScreenPosition);




                //协同,等待下一帧继续
                yield return new WaitForFixedUpdate();
            }


            print("drag compeleted");


        }
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值