HeavenStudioPlus/Assets/Scripts/CircleCursor.cs

65 lines
2.2 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
namespace RhythmHeavenMania
{
public class CircleCursor : MonoBehaviour
{
[SerializeField] private bool follow = false;
[SerializeField] private float mouseMoveSpeed;
[Header("DSGuy")]
[SerializeField] private GameObject Eyes;
[SerializeField] private GameObject OuterCircle;
[SerializeField] private GameObject InnerCircle;
[SerializeField] private GameObject Circle;
private Tween outerCircleTween, eyesTween;
private void Start()
{
Cursor.visible = false;
}
private void Update()
{
Vector3 pos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (follow)
{
Vector2 direction = (pos - transform.position).normalized;
this.GetComponent<Rigidbody2D>().velocity = new Vector2(direction.x * mouseMoveSpeed, direction.y * mouseMoveSpeed);
}
else
{
this.gameObject.transform.position = new Vector3(pos.x, pos.y, 0);
if (PlayerInput.Pressed())
{
Cursor.visible = false;
Circle.transform.DOScale(0, 0.5f).SetEase(Ease.OutExpo);
InnerCircle.SetActive(true);
outerCircleTween.Kill();
outerCircleTween = OuterCircle.transform.DOScale(1, 0.15f).SetEase(Ease.OutExpo);
Eyes.SetActive(true);
eyesTween.Kill();
eyesTween = Eyes.transform.DOLocalMoveY(0.15f, 0.15f).SetEase(Ease.OutExpo);
}
else if (PlayerInput.PressedUp())
{
Circle.transform.DOScale(0.2f, 0.5f).SetEase(Ease.OutExpo);
InnerCircle.SetActive(false);
outerCircleTween.Kill();
outerCircleTween = OuterCircle.transform.DOScale(0, 0.15f);
eyesTween.Kill();
eyesTween = Eyes.transform.DOLocalMoveY(-0.66f, 0.15f).OnComplete(delegate { Eyes.SetActive(false); });
}
}
}
}
}