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

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);
}
}