Unity中游戏开始对物体进行移动操作

这篇博客记录了Unity中如何在游戏运行时对3D和2D物体进行拖拽移动的操作,包括3D物体和2D物体的移动代码实现,并提供了将脚本应用于游戏物体的方法。
摘要由CSDN通过智能技术生成

学习内容:

此为Unity在游戏运行中对3D以及2D物体进行拖拽移动操作,仅作为笔记

以下是3D物体的移动操作代码

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

public class td : MonoBehaviour
{
    Vector3 dist;
    float posX;
    float posY;
    float posZ;
    private void OnMouseDown()
    {
        dist = Camera.main.WorldToScreenPoint(transform.position);
        posX = Input.mousePosition.x - dist.x;
        posY = Input.mousePosition.y - dist.y;
        posZ = Input.mousePosition.z - dist.z;
    }
    private void OnMouseDrag()
    {
        Vector3 curPos = new Vector3(Input.mousePosition.x - posX, Input.mousePosition.y - posY, Input.mousePosition.z - posZ);
        Vector3 worldPos = Camera.main.ScreenToWorldPoint(curPos);
        transform.position = worldPos;
    }
}

以下是2D物体的移动操作代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class uitd : MonoBehaviour,IDragHandler ,IPointerDownHandler//后俩是接口
{
    
    private Vector2 Pos;
    public void OnDrag(PointerEventData eventData)
    {
        if (Input .GetMouseButton (0))
        {
            transform.position = eventData.position - Pos;
        }
    }
    public void OnPointerDown(PointerEventData eventData)
    {
        Pos = eventData.position - (Vector2)transform.position;
    }
   
}

在Unity中直接把编好的脚本赋给3D,2D物体,游戏运行并使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值