A lot of stuff to Commit because I forgot to Commit in between (Don't do stuff like this, kids)
This commit is contained in:
@@ -0,0 +1,77 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
using UnityEngine.Events;
|
||||
using UnityEngine.EventSystems;
|
||||
using UnityEngine.UIElements;
|
||||
using static Swizzles.E3;
|
||||
|
||||
public class CraneControl : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler,IPointerDownHandler,IPointerUpHandler
|
||||
{
|
||||
[SerializeField]
|
||||
private OutlineFx.OutlineFx _outline;
|
||||
|
||||
[SerializeField]
|
||||
private float _speed = 3;
|
||||
|
||||
[SerializeField]
|
||||
private UnityEvent _onHooked;
|
||||
|
||||
private bool mouseIsDown = false;
|
||||
|
||||
public void OnPointerEnter(PointerEventData eventData)
|
||||
{
|
||||
_outline.enabled = true;
|
||||
}
|
||||
public void OnPointerExit(PointerEventData eventData)
|
||||
{
|
||||
_outline.enabled = false;
|
||||
}
|
||||
public void OnPointerDown(PointerEventData eventData)
|
||||
{
|
||||
mouseIsDown = true;
|
||||
}
|
||||
public void OnPointerUp(PointerEventData eventData)
|
||||
{
|
||||
mouseIsDown = false;
|
||||
}
|
||||
|
||||
private void Update()
|
||||
{
|
||||
if(!mouseIsDown) return;
|
||||
|
||||
var mouseWorldPoint = Camera.main.ScreenToWorldPoint(Input.mousePosition).Swiz(X,Y,Zero);
|
||||
var ownPosition = transform.position;
|
||||
mouseWorldPoint += ownPosition.Swiz(Zero, Zero, Z);
|
||||
|
||||
var stepDistance = Time.deltaTime * _speed;
|
||||
var towardMousePosition = mouseWorldPoint - ownPosition;
|
||||
if (towardMousePosition.magnitude>stepDistance)
|
||||
{
|
||||
towardMousePosition.Normalize();
|
||||
towardMousePosition *= stepDistance;
|
||||
}
|
||||
|
||||
transform.position += towardMousePosition;
|
||||
|
||||
if(transform.position.x>45)
|
||||
transform.position = new Vector3(45,transform.position.y,transform.position.z);
|
||||
if(transform.position.x<-45)
|
||||
transform.position = new Vector3(-45,transform.position.y,transform.position.z);
|
||||
if(transform.position.y>35)
|
||||
transform.position = new Vector3(transform.position.x,35,transform.position.z);
|
||||
if(transform.position.y<-35)
|
||||
transform.position = new Vector3(transform.position.x,-35,transform.position.z);
|
||||
}
|
||||
|
||||
private void OnTriggerEnter2D(Collider2D other)
|
||||
{
|
||||
Debug.Log(other.gameObject.name);
|
||||
|
||||
if(!other.gameObject.CompareTag("Bike")) return;
|
||||
|
||||
other.transform.parent.SetParent(transform);
|
||||
other.transform.parent.localPosition = Vector3.zero;
|
||||
|
||||
_onHooked.Invoke();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user