From bb15f0056e9ce4f7e838b07d094703d6d91b6036 Mon Sep 17 00:00:00 2001 From: gaoxin Date: Wed, 24 Nov 2021 14:29:47 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E6=88=98=E6=96=97=E3=80=91=E5=BC=B9?= =?UTF-8?q?=E9=81=93=E7=89=B9=E6=95=88=E4=B8=8D=E5=9C=A8=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E8=B4=9D=E5=A1=9E=E5=B0=94=E6=9B=B2=E7=BA=BF=E8=BF=90=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Modules/Battle/View/Unit/SkillCaster.lua | 63 ++++++++++++++----- 1 file changed, 46 insertions(+), 17 deletions(-) diff --git a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/SkillCaster.lua b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/SkillCaster.lua index 0713573f27..349548914e 100644 --- a/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/SkillCaster.lua +++ b/Assets/ManagedResources/~Lua/Modules/Battle/View/Unit/SkillCaster.lua @@ -557,8 +557,8 @@ local plist = { Vector2.New(0.2, 0.9), }, [2] = { - Vector2.New(1.12, 0.33), - Vector2.New(-0.15, 0.67), + Vector2.New(1, 0.33), + Vector2.New(0, 0.67), }, [3] = { Vector2.New(0.9, 0.2), @@ -583,25 +583,54 @@ function SkillCaster:RoleViewBullet(combat, target) Util.ClearTrailRender(go) go:SetActive(true) - local startV3 = go.transform.position - local endV3 = self.owner.RootPanel.GetRoleView(target).GameObject.transform.position + -- local startV3 = go.transform.position + -- local endV3 = self.owner.RootPanel.GetRoleView(target).GameObject.transform.position - local startV2 = Vector2.New(0, 0) - local endV2 = Vector2.New(1, 1) + -- 特效旋转补正 + local tv = self.owner.RootPanel.GetRoleView(target) + + local startPos = go.transform.position + local targetPos = tv.GameObject.transform.position - local pL = plist[math.random(1, #plist)] - --飞行子弹轨迹 - DoTween.To( - DG.Tweening.Core.DOGetter_float( function () return 0 end), - DG.Tweening.Core.DOSetter_float(function (progress) - local v2 = Bezier.CalPos(progress, startV2, endV2, pL) - go.transform.position = Vector3.New(startV3.x * (1-v2.x) + endV3.x * v2.x, - startV3.y * (1-v2.y) + endV3.y * v2.y, startV3.z) - end), 1, duration) - :SetEase(Ease.InQuad) - :OnComplete(function () + local deltaX = targetPos.x - startPos.x + local deltaY = targetPos.y - startPos.y + local deltaR = math.atan(math.abs(deltaX/deltaY))/math.pi*180 + + local fixRotate = self:CalRoleRotate(self.owner, tv) + go.transform.localEulerAngles = go.transform.localEulerAngles + fixRotate + + + -- go.transform.localPosition = startPos + go.transform:DOMove(targetPos, combat.KeyFrame/1000, false):OnComplete(function () poolManager:UnLoadAsset(bulletEffect, go, PoolManager.AssetType.GameObject) end) + + + -- local startV2 = Vector2.New(0, 0) + -- local endV2 = Vector2.New(1, 1) + + -- local pL = plist[math.random(1, #plist)] + -- --飞行子弹轨迹 + -- DoTween.To( + -- DG.Tweening.Core.DOGetter_float( function () return 0 end), + -- DG.Tweening.Core.DOSetter_float(function (progress) + -- local v2 = Bezier.CalPos(progress, startV2, endV2, pL) + + -- local targetPos = Vector3.New(startV3.x * (1-v2.x) + endV3.x * v2.x, startV3.y * (1-v2.y) + endV3.y * v2.y, startV3.z) + -- local basePos = go.transform.position + -- local deltaX = targetPos.x - basePos.x + -- local deltaY = targetPos.y - basePos.y + -- local deltaR = math.atan(math.abs(deltaX/deltaY))/math.pi*180 + + -- go.transform.localEulerAngles = Vector3.New(0, 0, deltaR) + + -- go.transform.position = targetPos + + -- end), 1, duration) + -- -- :SetEase(Ease.InQuad) + -- :OnComplete(function () + -- poolManager:UnLoadAsset(bulletEffect, go, PoolManager.AssetType.GameObject) + -- end) end