unity3d 2D平面游戏实现鼠标拖拽物体移动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity3d 2D平面游戏实现鼠标拖拽物体移动相关的知识,希望对你有一定的参考价值。

继鼠标点击物体 按住鼠标,拖动到指定位置后放开鼠标,物体停留在鼠标放开位置!

呃..以前做过..代码找不到了..
跟你说下思路吧..

鼠标拖动的操作是由三个时间组成的..

鼠标按住 鼠标移动 鼠标松开.

定义一个公用变量.
鼠标按住的时候,..变量为true
松开的时候..变量为false
而鼠标移动的时候,,必须为true才可以使对象移动..
移动时先计算鼠标到父窗口的相对位置,和对象的相对位置然后得到相差值..之后鼠标移动的时候获取到的鼠标位置加上或者减去这个相对值就是对象应该在的位置..追问

用playmaker 能实现不 给点思路谢谢了!

参考技术A using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;


public class PictureMove : MonoBehaviour,
IBeginDragHandler,IDragHandler


private Vector3 offset;//物体与鼠标点击处的差值
private Vector3 mousePos;//鼠标位置
// Use this for initialization
void Start () 



// Update is called once per frame
void Update () 


#region IBeginDragHandler implementation
//准备拖拽接口
public void OnBeginDrag (PointerEventData eventData)


//获取鼠标位置
mousePos=Input.mousePosition;
//获取鼠标位置与图片位置的偏移量
offset=transform.position-mousePos;

#endregion
#region IDragHandler implementation
//拖拽接口
public void OnDrag (PointerEventData eventData)

//图片随鼠标移动
transform.position= Input.mousePosition + offset;


#endregion


Crossove

什么意思

参考技术A Crossover由codewaver公司开发的类虚拟机软件,目的是使linux和Mac OS X操作系统和window系统兼容。兼容 Mojave 的 CrossOver Mac 19 让您可以在 Mac 上运行 Microsoft Windows 应用,而不必购买 Windows 授权,不必重启系统,不必使用虚拟机。通过 CrossOver Mac,您可以从 dock 直接启动 Windows 应用,与您的 macOS 系统功能无缝集成,实现跨平台的复制粘贴和文件互通。
CrossOver Mac : http://wm.makeding.com/iclk/?zoneid=13969
CrossOver Mac 支持 Windows 办公软件,工具程序和各种游戏,同时避免了运行虚拟机所需的系统开销,程序和游戏的性能可以达到甚至超过它们在 Windows 下的表现。CrossOver不像Parallels或VMware的模拟器,而是实实在在Mac OS X系统上运行的一个软件。CrossOvers能够直接在Mac上运行Windows软件与游戏,而不需虚拟机。它为Windows软件提供所需的资源,以达到在Mac OS X系统上运行Windows程序的目的。
参考技术B 篮球上crossover的本义是交叉步/交叉步突破

crossover 是篮球术语,跨下运球之意.

在nba里是指包括跨下运球、变相、插花在内的过人的技巧本回答被提问者采纳
参考技术C 是crossover,简单的说,就是突破。 参考技术D 过人吧

以上是关于unity3d 2D平面游戏实现鼠标拖拽物体移动的主要内容,如果未能解决你的问题,请参考以下文章

时光煮雨 Unity3D实现2D人物移动-总结篇

Unity3D游戏物体操作 ② ( 3D 原生物体 | 立方体 | 球体 | 平面 | 物体移动 | 沿坐标轴移动 | 沿坐标平面移动 | 在 Inspector 检查器窗口设置坐标属性 )

时光煮雨 Unity3d 序列目标点的移动①

你好,请问在UNITY3D中如何实现用鼠标左键拖拽控制一个组合物体的旋转啊?

Unity基于响应式编程(Reactive programming)入门

unity3d 鼠标延各个方向拖拽物体