首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Unity3d相对于鼠标位置移动2D雪碧

Unity3d相对于鼠标位置移动2D雪碧
EN

Stack Overflow用户
提问于 2017-11-03 23:09:18
回答 1查看 7.4K关注 0票数 1

如果我用鼠标移动我的精灵,精灵总是在光标下面。

目前,我的代码看起来是这样的:

代码语言:javascript
运行
复制
    public GameObject player;
    private float distance = 1;

    private void Update()
    {
        if (Input.GetMouseButton(0))
        {
            Vector3 mousePos = new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance);
            Vector3 playerPos = Camera.main.ScreenToWorldPoint(mousePos);
            player.transform.position = playerPos;
        }
    }

但我想移动雪碧,不管我的鼠标在哪里的背景。因此,如果我点击并保持在雪碧旁边,并将鼠标移向右边,我希望我的精灵以相同的方向移动。

例图

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 23:49:18

在这种情况下,您应该使用一个相对的移动,即鼠标单击鼠标按钮时从其当前位置移动的数量,就好像这是原点一样。

因此,当用户按下鼠标按钮时,您应该注意到当前的鼠标位置。

以下是我所描述的一个解决方案:

代码语言:javascript
运行
复制
// by Vander 'imerso' Nunes to StackOverflow answer

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

public class MouseDrag : MonoBehaviour
{
    public GameObject player;

    bool dragging = false;
    Vector3 mouseStartPos;
    Vector3 playerStartPos;

    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            dragging = true;
            mouseStartPos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0));
            playerStartPos = player.transform.position;
        }
        else if (Input.GetMouseButtonUp(0))
        {
            dragging = false;
        }

        if (dragging)
        {
            Vector3 mousePos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 0));
            Vector3 move = mousePos - mouseStartPos;
            player.transform.position = playerStartPos + move;
        }
    }
}

您会注意到,当最初按下按钮时,会注意到当前的播放器位置和当前的鼠标位置。所以,他们的行为就像是他们的起源。当鼠标按下按钮时,玩家只会根据鼠标从初始位置移动的距离来移动。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47105597

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档