You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.8 KiB
66 lines
1.8 KiB
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using DG.Tweening;
|
|
using DG.Tweening.Core;
|
|
using DG.Tweening.Plugins.Options;
|
|
using UnityEngine.UI;
|
|
|
|
public class DropItemObject : MonoBehaviour
|
|
{
|
|
Sequence dropItem;
|
|
Sequence getItem;
|
|
|
|
[SerializeField]
|
|
SpriteRenderer item;
|
|
[SerializeField]
|
|
Sprite[] itemSprite;
|
|
|
|
public void ItemAppear(Vector3 enemyTrf, int spriteNum)
|
|
{
|
|
float moveX = Random.Range(-5f, 5f);
|
|
float moveY = Random.Range(-2f, 2f);
|
|
|
|
transform.position = enemyTrf;
|
|
|
|
int sprite = spriteNum;
|
|
|
|
item.sprite = itemSprite[sprite];
|
|
|
|
dropItem = DOTween.Sequence()
|
|
.SetAutoKill(false)
|
|
.Append(transform.DOMoveX(enemyTrf.x + moveX, 0.5f)).SetEase(Ease.Linear)
|
|
.Join(transform.DOMoveY(enemyTrf.y + 2, 0.25f)).SetEase(Ease.OutQuart)
|
|
.Insert(0.25f, transform.DOMoveY(enemyTrf.y + moveY, 0.25f).SetEase(Ease.InQuart))
|
|
.AppendCallback(() =>
|
|
{
|
|
transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.y);
|
|
|
|
}
|
|
);
|
|
|
|
gameObject.SetActive(true);
|
|
dropItem.Restart();
|
|
}
|
|
|
|
public void itemDisappear(Vector3 playerTrf)
|
|
{
|
|
float xDistance = Mathf.Abs(transform.position.x - playerTrf.x);
|
|
float speed = 0.3f;
|
|
float disTime = xDistance / speed;
|
|
|
|
getItem = DOTween.Sequence()
|
|
.SetAutoKill(false)
|
|
.Append(transform.DOMove(new Vector3(playerTrf.x, playerTrf.y, 0), xDistance / 30)).SetEase(Ease.Linear);
|
|
|
|
getItem.Restart();
|
|
|
|
Invoke("HideObject", xDistance / 30);
|
|
}
|
|
|
|
public void HideObject()
|
|
{
|
|
CancelInvoke("HideObject");
|
|
gameObject.SetActive(false);
|
|
}
|
|
}
|