private void SetChainSpawnTimeScale(float newTimeScale) { List <Tween> chainTweens = DOTween.TweensById(SPAWN_CHAIN_SEQUENCE); if (chainTweens == null) { return; } foreach (var tween in chainTweens) { tween.timeScale = newTimeScale; } }
void Update() { RaycastHit hit; Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out hit, 100f)) { CubeController hitCube = hit.transform.GetComponentInParent <CubeController>(); // Target switched if (hitCube != null && hitCube != previousTarget) { if (hitCube != blueCube) { // Light up new target DOTween.Kill(hitCube); hitCube.GetComponentInChildren <MeshRenderer>().material.DOColor(emissiveColor, "_EmissiveColor", tweenDuration).SetId(hitCube).SetEase(tweenEaseType); Light light = hitCube.GetComponentInChildren <Light>(); light.enabled = true; light.DOIntensity(0f, tweenDuration).From().SetId(hitCube).SetEase(tweenEaseType) .OnComplete(() => { AssignBlueCube(hitCube); }); } // Unlight the previous target if (previousTarget != null && previousTarget != blueCube) { List <Tween> tweens = DOTween.TweensById(previousTarget); float tweenDuration = tweens[0].Elapsed(); DOTween.Kill(previousTarget); previousTarget.GetComponentInChildren <MeshRenderer>().material.DOColor(Color.black, "_EmissiveColor", tweenDuration * tweenFadeOutMultiplier).SetId(previousTarget).SetEase(Ease.InSine); Light light = previousTarget.GetComponentInChildren <Light>(); light.DOIntensity(0f, tweenDuration * tweenFadeOutMultiplier).From().SetId(previousTarget).SetEase(Ease.InSine) .OnComplete(() => { light.enabled = false; light.intensity = lightIntensity; }); } // Update reference to currentTarget previousTarget = hitCube; } } }
private void InitializeLogin() { copyrightTween = DOTween.TweensById("CopyrightTween", false)[0]; closingPanelTween = DOTween.TweensById("ClosingPanelTween", false)[0]; //loadingMessageTween = DOTween.TweensById ("LoadingMessageTween", false)[0]; // show copy right after a bit of a delay Sequence cleanupSequence = DOTween.Sequence(); cleanupSequence.Append(copyrightTween); cleanupSequence.Append(closingPanelTween); //cleanupSequence.Append (loadingMessageTween); cleanupSequence.OnComplete(VerifyFBAuthentication); }
private void TestSequenceSpeedupCallback() { _testTimeScale += 0.1f; List <Tween> _tweens = DOTween.TweensById("TESTTEST"); if (_tweens == null) { return; } for (int i = 0; i < _tweens.Count; i++) { var _tween = _tweens[i]; _tween.timeScale = _testTimeScale; } }
private void KillTweentToID(string tweenid) { var killtween = DOTween.TweensById(tweenid); if (killtween != null) { killtween.ForEach((tween) => { if (tween != null) { tween.Complete(); } }); } }
public List <Tween> GetAllHellspawnTweens() { List <Tween> hellspawns = DOTween.TweensById(HellSpawn.HELLSPAWN_DOTWEEN_ID, true); List <Tween> hellspawnBullets = DOTween.TweensById(HellSpawnBullet.HELLSPAWN_BULLET_DOTWEEN_ID, true); List <Tween> result = new List <Tween>(); if (hellspawns != null) { result.AddRange(hellspawns); } if (hellspawnBullets != null) { result.AddRange(hellspawnBullets); } return(result); }
private void ResolveTouchEnd(IPuzzle puzzle, IOperation op) { IQuad quad = puzzle[op.row, op.column]; string tid = Style.QuadUnifiedScaleId + "_" + quad.row + "_" + quad.column; List <Tween> playings = DOTween.TweensById(tid, true); if (playings != null) { playings.ForEach((Tween each) => each.Kill(true)); } DOTween.To( () => quad.localScale, x => quad.localScale = x, Vector3.one, Style.QuadTouchScaleDuration ).SetId(tid); }
public static void CreateSequence(string sequenceId, GameObject[] targetObjects, Action afterCompleteAnimation = null, float timeBetweenAnimations = 0, float delay = 0) { if (DOTween.TweensById(sequenceId, true) != null) { return; } float currentTime = 0 + delay; Sequence mySequence = DOTween.Sequence(); mySequence.SetId(sequenceId); foreach (GameObject targetObject in targetObjects) { mySequence.Insert(currentTime, AssignTween(targetObject, "scale")); currentTime += timeBetweenAnimations; } mySequence.OnComplete(() => afterCompleteAnimation()); }
// Use this for initialization void Start() { LoadStatus = 0; LoadingText = LoadingTextGameObject.GetComponent <Text> (); loadingTweens = DOTween.TweensById("Loading", false); LoadingTween = loadingTweens [0]; loadingBallTweens = DOTween.TweensById("LoadingBallOne", false); LoadingBallOneTween = loadingBallTweens [0]; loadingBallTweens = DOTween.TweensById("LoadingBallTwo", false); LoadingBallTwoTween = loadingBallTweens [0]; loadingBallTweens = DOTween.TweensById("LoadingBallThree", false); LoadingBallThreeTween = loadingBallTweens [0]; treeLineTweens = DOTween.TweensById("TreeLine", false); TreeLineTween = treeLineTweens [0]; CircleOne = GameObject.Find(CIRCLE_ONE_ID); CircleOne.SetActive(false); CircleOne.transform.localScale = new Vector3(0.0f, 0.0f, 0.0f); circleFrameTweens = DOTween.TweensById(CIRCLE_ONE_ID + "FrameTween", false); CircleOneFrameTween = circleFrameTweens [0]; CircleTwo = GameObject.Find(CIRCLE_TWO_ID); CircleTwo.SetActive(false); CircleTwo.transform.localScale = new Vector3(0.0f, 0.0f, 0.0f); circleFrameTweens = DOTween.TweensById(CIRCLE_TWO_ID + "FrameTween", false); CircleTwoFrameTween = circleFrameTweens [0]; CircleThree = GameObject.Find(CIRCLE_THREE_ID); CircleThree.SetActive(false); CircleThree.transform.localScale = new Vector3(0.0f, 0.0f, 0.0f); circleFrameTweens = DOTween.TweensById(CIRCLE_THREE_ID + "FrameTween", false); CircleThreeFrameTween = circleFrameTweens [0]; CircleFour = GameObject.Find(CIRCLE_FOUR_ID); CircleFour.SetActive(false); CircleFour.transform.localScale = new Vector3(0.5f, 0.5f, 0.5f); circleFrameTweens = DOTween.TweensById(CIRCLE_FOUR_ID + "FrameTween", false); CircleFourFrameTween = circleFrameTweens [0]; CircleFive = GameObject.Find(CIRCLE_FIVE_ID); CircleFive.SetActive(false); CircleFive.transform.localScale = new Vector3(0.0f, 0.0f, 0.0f); circleFrameTweens = DOTween.TweensById(CIRCLE_FIVE_ID + "FrameTween", false); CircleFiveFrameTween = circleFrameTweens [0]; if (InSplashScene) { // TODO: Add the story scene and bulliten message scene (info message is something I might need all users to be aware ASAP) // to the list of possible sceens shown right after splash GameState.Instance.CurrentScene = (string)GameManager.Instance.GetLastSceneInBreadCrumb(); Debug.Log("Loading the following Scene: " + GameState.Instance.CurrentScene); LoadNextScene(GameState.Instance.CurrentScene, false); } else { if (LoadingSceneCamera != null) { LoadingSceneCamera.enabled = false; } if (LoadingSceneCanvas != null) { LoadingSceneCanvas.enabled = false; } if (QuickLoadImage != null) { QuickLoadImage.SetActive(false); } } }
private void FixedUpdate() { if (Input.GetKey("escape")) { Application.Quit(); } if (!sceneChanging) { if (touching) { touchHold(Input.mousePosition); } if (Input.GetMouseButtonDown(0) && !touching) { touching = true; touchBegin(Input.mousePosition); } if (Input.GetMouseButtonUp(0)) { touching = false; touchEnd(Input.mousePosition); } if (Input.touchCount > 0) { if (Input.GetTouch(0).phase == TouchPhase.Began) { touching = true; touchBegin(Input.GetTouch(0).position); } if (Input.GetTouch(0).phase == TouchPhase.Moved) { touchHold(Input.GetTouch(0).position); } if (Input.GetTouch(0).phase == TouchPhase.Ended) { touching = false; touchEnd(Input.GetTouch(0).position); } } //Camera di chuyển theo phương X if (PlanetContainer != null) { for (int i = 0; i < PlanetContainer.childCount - 1; i++) { if (Camera.main.transform.position.y > PlanetContainer.GetChild(i).position.y&& Camera.main.transform.position.y < PlanetContainer.GetChild(i + 1).position.y) { float ratio = (Camera.main.transform.position.y - PlanetContainer.GetChild(i).position.y) / (PlanetContainer.GetChild(i + 1).position.y - PlanetContainer.GetChild(i).position.y); if (DOTween.TweensById("MoveX", true) != null) { foreach (Tween tween in DOTween.TweensById("MoveX", true)) { tween.Kill(); } } Camera.main.transform.DOMoveX(PlanetContainer.GetChild(i).position.x + ratio * (PlanetContainer.GetChild(i + 1).position.x - PlanetContainer.GetChild(i).position.x), 0.2f).SetId("MoveX"); break; } } // Camera di chuyển theo phuong Y if (Camera.main.transform.position.y - ScrollVelocity.y >= limitDown && Camera.main.transform.position.y - ScrollVelocity.y <= limitUp) { if (DOTween.TweensById("MoveY", true) != null) { foreach (Tween tween in DOTween.TweensById("MoveY", true)) { tween.Kill(); } } Camera.main.transform.DOMoveY((Camera.main.transform.position.y - ScrollVelocity.y), 0.1f).SetId("MoveY"); if (!touching) { ScrollVelocity = Vector2.Lerp(ScrollVelocity, Vector2.zero, 0.125f); } } else if (Camera.main.transform.position.y - ScrollVelocity.y < limitDown) { Camera.main.transform.DOMoveY(limitDown, 0.1f); } else { Camera.main.transform.DOMoveY(limitUp, 0.1f); } } } }
async void Start() { //Position 移動到座標 transform.DOMove(Vector3.one, 2); transform.DOLocalMoveX(1, 2); transform.DOLocalMoveY(1, 2); //Rotate 旋轉 transform.DORotate(new Vector3(0, 0, 180), 2); transform.DOLocalRotate(new Vector3(0, 90, 0), 2); transform.DORotateQuaternion(new Quaternion(0.1f, 0.1f, 0.1f, 0.1f), 2); transform.DOLookAt(Vector3.one, 2); //縮放 Scale transform.DOScale(Vector3.one * 2, 2); //震動 + 彈性 //第一個參數 punch:方向 力的大小 //第二個參數 duration:持續時間 //第三個參數 Vibrato: 震動頻率 //第四個參數 Elasticity 彈性 transform.DOPunchPosition(new Vector3(0, 1, 0), 2, 10, 10); //Shake 震動 transform.DOShakePosition(2, Vector3.one, 20, 0); //Blend(座標位置增加或減少) transform.DOBlendableMoveBy(Vector3.one, 2); transform.DOBlendableMoveBy(-Vector3.one * 2, 2); //Material 材質Tint顏色變化 Material material = GetComponent <MeshRenderer>().material; material.DOColor(Color.red, "_Color", 2); //Alpha 透明 material.DOFade(0, 2); //Gradient 顏色和透明度漸變 material.DOGradientColor(_gradient, "_Color", 2); material.DOVector(Color.clear, "_Color", 2); //顏色混合 material.DOBlendableColor(Color.red, "_Color", 2); material.DOBlendableColor(Color.green, "_Color", 2); //隊列執行 Sequence quence = DOTween.Sequence(); quence.Append(transform.DOMove(Vector3.one, 2)); //0~2秒 quence.AppendInterval(1); //2~3秒 quence.AppendCallback(AppendCallBack); quence.Join(transform.DOScale(Vector3.one * 2, 2)); quence.Append(transform.DOMove(new Vector3(1, 0, 0), 2)); //3~5秒 quence.Join(transform.DOScale(Vector3.one, 2)); //插入執行(會覆蓋當前秒數的執行) quence.Insert(2, transform.DOMove(-Vector3.one, 1)); //2秒開始 //插入方法執行 quence.InsertCallback(5, InsertCallBack); //多種方法調用 transform.DOMove(Vector3.one, 1).SetLoops(-1, LoopType.Yoyo).SetEase(Ease.Linear); //結束點到起點 transform.DOMove(Vector3.one, 2).From(); //延遲調用 transform.DOMove(Vector3.one, 2).SetDelay(3); //移動速度 transform.DOMove(Vector3.one, 10).SetSpeedBased(); //以ID調用 transform.DOMove(Vector3.one, 10).SetId("ID"); DOTween.Play("ID"); //增量移動 transform.DOMove(Vector3.one, 2).SetRelative(true); //幀函數 transform.DOMove(Vector3.one, 2).SetUpdate(UpdateType.Normal, true); //Flash運動曲線 漸大或漸小 transform.DOMove(Vector3.one, 2).SetEase(Ease.Flash, 10, 1); transform.DOMove(Vector3.one, 2).SetEase(Ease.Flash, 10, -1); //結合AnimationCurve使用 transform.DOMove(Vector3.one * 2, 2).SetEase(_curve); //曲線運動 自訂義函數設置 transform.DOMove(Vector3.one * 2, 2).SetEase(EaseFun); //回調函數 transform.DOMove(Vector3.one * 2, 2).OnComplete(() => { Debug.Log("OnComplete"); }); transform.DOMove(Vector3.one * 2, 2).OnKill(() => { Debug.Log("OnKill"); }); transform.DOMove(Vector3.one * 2, 2).OnPlay(() => { Debug.Log("OnPlay"); }); transform.DOMove(Vector3.one * 2, 2).OnPause(() => { Debug.Log("OnPause"); }); transform.DOMove(Vector3.one * 2, 2).OnStart(() => { Debug.Log("OnStart"); }); transform.DOMove(Vector3.one * 2, 2).OnStepComplete(() => { Debug.Log("OnStepComplete"); }); transform.DOMove(Vector3.one * 2, 2).OnUpdate(() => { Debug.Log("OnUpdate"); }); transform.DOMove(Vector3.one * 2, 2).OnRewind(() => { Debug.Log("OnRewind"); }); //常見方法 transform.DOMove(Vector3.one * 2, 2); await Task.Delay(TimeSpan.FromSeconds(0.0001f)); transform.DOPause(); transform.DOPlay(); transform.DORestart(); transform.DORewind(); transform.DOSmoothRewind(); transform.DOPlayBackwards(); await Task.Delay(TimeSpan.FromSeconds(0.5f)); transform.DOPlayForward(); transform.DOTogglePause(); //獲取數據 var list1 = DOTween.PausedTweens(); var list2 = DOTween.PlayingTweens(); var list3 = DOTween.TweensById("ID"); var list4 = DOTween.TweensByTarget(transform, true); var list5 = DOTween.IsTweening("ID"); var list6 = DOTween.TotalPlayingTweens(); //修改移動模式 var tweener = transform.DOMove(Vector3.one * 2, 2); await Task.Delay(TimeSpan.FromSeconds(1)); Debug.Log(tweener.fullPosition); await Task.Delay(TimeSpan.FromSeconds(0.5f)); tweener.fullPosition = 0; var tweener1 = transform.DOMove(Vector3.one * 2, 1).SetLoops(3); await Task.Delay(TimeSpan.FromSeconds(1.1f)); Debug.Log(tweener1.CompletedLoops()); //1.1秒 await Task.Delay(TimeSpan.FromSeconds(1.1f)); Debug.Log(tweener1.CompletedLoops()); //2.2秒 await Task.Delay(TimeSpan.FromSeconds(1.1f)); Debug.Log(tweener1.CompletedLoops()); //3.3秒 //獲取時間數據 var tweener2 = transform.DOMove(Vector3.one * 2, 1).SetLoops(3); tweener2.Delay(); //延遲 tweener2.Duration(); //持續時間 tweener2.Elapsed(); //已經播放的時間 tweener2.ElapsedDirectionalPercentage(); //過去方向百分比 tweener2.ElapsedPercentage(); //過去百分比 //協程 指定循環次數 _tweener = transform.DOMove(Vector3.one * 2, 1).SetLoops(3); StartCoroutine(Wait()); }