1.新建场景,建立工具栏。 2.在Resources文件夹下建立预制件person。 3.建立脚本DragSpawn.cs,挂载到要拖拽的按钮上。
拖拽三维实体见:https://blog.csdn.net/zouxin_88/article/details/89237172
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class DragSpawn : MonoBehaviour, IPointerDownHandler
{
//正在拖拽的物体
private GameObject _objDragSpawning;
//是否正在拖拽
private bool _isDragSpawning = false;
// Update is called once per frame
void Update()
{
#if UNITY_EDITOR
if (_isDragSpawning)
{
//刷新位置
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
_objDragSpawning.transform.position = ray.GetPoint(10);
//结束拖拽
if (Input.GetMouseButtonUp(0))
{
_isDragSpawning = false;
_objDragSpawning = null;
}
}
#endif
#if UNITY_ANDROID
if (_isDragSpawning)
{
if (Input.touchCount == 1)
{
if (Input.touches[0].phase == TouchPhase.Moved)
{
Vector3 ptMouse = Input.touches[0].position;
//刷新位置
Ray ray = Camera.main.ScreenPointToRay(ptMouse);
_objDragSpawning.transform.position = ray.GetPoint(10);
}
if (Input.touches[0].phase == TouchPhase.Ended)
{
_isDragSpawning = false;
_objDragSpawning = null;
}
}
}
#endif
}
//按下鼠标时开始生成实体
public void OnPointerDown(PointerEventData eventData)
{
GameObject prefab = Resources.Load("person");
if (prefab != null)
{
_objDragSpawning = Instantiate(prefab);
_isDragSpawning = true;
}
}
}