예제 #1
0
 private void DestroyAnimationCompleted()
 {
     transform.DOKill();
     GetCore.GetComponent <MeshRenderer>().material.DOKill();
     GetMeshRenderer.GetComponent <MeshRenderer>()
     .material.DOKill();
     InSlot.SetJewel = null;
     Destroy(gameObject);
 }
예제 #2
0
    public void DestroySelf(float animationSpeed)
    {
        transform.DOScale(Vector3.one * 1.1f, 0.5f).OnComplete(Implode);
        transform.DOShakePosition(0.75f, 0.05f, 20, 90f, false, false).SetEase(Ease.InExpo).OnComplete(DestroyAnimationCompleted);

        var lightAnimator = GetMeshRenderer.AddComponent <AnimateMaterialEmission>();

        lightAnimator.AnimateLight(Color.white, 1, GetCore.GetComponent <Renderer>());
    }
예제 #3
0
    public void LightOn(bool slow = false)
    {
        if (IsLit)
        {
            return;
        }

        var lightAnimator = GetMeshRenderer.AddComponent <AnimateMaterialEmission>();

        lightAnimator.AnimateLight(_litEmissionColor, 15, GetCore.GetComponent <Renderer>());

        IsLit = true;

        lightAnimator.transform.DOShakePosition(0.15f, Vector3.one * 0.25f, 100);

        CancelInvoke();
    }
예제 #4
0
    public void LightOff(bool slow = false)
    {
        if (!IsLit)
        {
            return;
        }

        var speed = 4;

        if (slow)
        {
            speed = 2;
        }

        var lightAnimator = GetMeshRenderer.AddComponent <AnimateMaterialEmission>();

        lightAnimator.AnimateLight(Color.black, speed, GetCore.GetComponent <Renderer>());
        IsLit = false;
    }