using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/// <summary>
/// 英雄移动
/// </summary>
public class yd : MonoBehaviour,IDragHandler,IEndDragHandler
{
public GameObject ima;//父集图片
Vector2 v2, st;
bool b;
//public GameObject player;//英雄
GameObject p;//英雄
public GameObject cam;//相机
Vector3 v3;//距离
public Image dt;//地图
public Image pl;//人物点
Vector3 v, v1;//dt位置
//拖拽中
public void OnDrag(PointerEventData eventData)
{
b = true;
v2 = eventData.position - st;
transform.localPosition = Vector3.ClampMagnitude(v2, 30f);
}
//拖拽结束
public void OnEndDrag(PointerEventData eventData)
{
b = false;
transform.position = ima.transform.position;
}
// Start is called before the first frame update
void Start()
{
st = transform.position;//赋初始位置
p = GameObject.FindGameObjectWithTag("g");//找到英雄标签
p.transform.position = new Vector3(0, 1, 0);//英雄赋初始位置
p.transform.rotation = Quaternion.EulerRotation(0, 0, 0);
p.GetComponent<Rigidbody>().useGravity = true;//英雄刚体激活
//相机
v3 = p.transform.position - cam.transform.position;
//小地图
v = new Vector3(-4.5f, 0, -4.5f);
}
// Update is called once per frame
void Update()
{
if (b == true)
{
p.transform.LookAt(new Vector3(v2.x, 0, v2.y));//英雄朝向
p.transform.Translate(Vector3.forward * 2 * Time.deltaTime);//英雄移动
v1 = p.transform.position;
float x = (v1.x - v.x) / 9;
float y = (v1.z - v.z) / 9;
dt.rectTransform.pivot = new Vector2(x, y);
dt.rectTransform.localPosition = Vector3.zero;
pl.transform.eulerAngles = new Vector3(0, 0, -p.transform.eulerAngles.y);
}
//相机和英雄的距离始终保持一致
cam.transform.position = p.transform.position - v3;
//鼠标滚轮放大地图图片
if(Input.mouseScrollDelta.y>0)
{
dt.transform.localScale += Vector3.one;
}
//鼠标滚轮缩小地图图片
if (Input.mouseScrollDelta.y < 0)
{
if(dt.transform.localScale.x-1>0)
{
dt.transform.localScale -= Vector3.one;
}
}
}
}