using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 拼图控制
///
public class MoveCurtains : MonoBehaviour
{
//执行此选择
bool isSelected;
float distanceRay; //定位点击时计算
GameObject piece; //分配点击时,将移动。
Transform[] piecesMove;
//[HideInInspector]
//public float positionZ = -0.001f;
[HideInInspector]
public bool puzzlePlaying;
Vector3 offset;
GameObject lightC;
public float positionX = 0f;
public float positionY = 0f;
public float positionZ = 0f;
Vector3 positionL;
//数字资源整合
[Header("SFX")]
public AudioSource clickSFX;
public GameObject menu;
public bool acitve = true;
private void Start()
{
}
void Update()
{
//鼠标信息
//按下鼠标
if (Input.GetMouseButtonDown(0))
{
TouchClick();
}
//移动鼠标
if (isSelected)
{
MovePiece();
}
//释放鼠标
if (Input.GetMouseButtonUp(0))
{
FreePiece();
}
}
///
/// 定位点击点
///
void TouchClick()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //从相机到点的触控点
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{ //接收触控,如果有击中目标
//print(hit.collider.transform.parent.tag);
if (hit.collider.gameObject.tag == "shui")
{
distanceRay = hit.distance;
piece = hit.collider.gameObject;
offset = hit.point - hit.collider.gameObject.transform.position;
isSelected = true;
}
else if (hit.collider.gameObject.transform.parent && (hit.collider.gameObject.transform.parent.name == "GrupoPiezas" || (hit.collider.gameObject.transform.parent.name == "group" && hit.collider.transform.parent.tag == "shui")))
{
distanceRay = hit.distance;
piece = hit.collider.gameObject.transform.parent.gameObject;
offset = hit.point - hit.collider.gameObject.transform.parent.position;
isSelected = true;
}
else
{
isSelected = false;
}
}
}
///
/// 移动碎片(每帧调用)
///
void MovePiece()
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Vector3 limitRay = ray.GetPoint(distanceRay);
limitRay = new Vector3(limitRay.x, limitRay.y, limitRay.z);
piece.transform.position = limitRay - offset;
}
///
/// 释放碎片
///
void FreePiece()
{
if (isSelected)
{
isSelected = false;
}
}
}