From 44cb4eb2822631b25a58a02d3f85ce9ca9d6d0cf Mon Sep 17 00:00:00 2001 From: gaoxin Date: Mon, 1 Nov 2021 15:53:33 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E5=9D=90=E9=AA=91=E3=80=91=E5=9D=90?= =?UTF-8?q?=E9=AA=91=E5=92=8C=E4=BA=BA=E7=89=A9=E5=B1=82=E7=BA=A7=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=E8=A1=A8=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../~Lua/View/PlayerLiveView.lua | 66 +++++++++++-------- 1 file changed, 40 insertions(+), 26 deletions(-) diff --git a/Assets/ManagedResources/~Lua/View/PlayerLiveView.lua b/Assets/ManagedResources/~Lua/View/PlayerLiveView.lua index cce27e7c5c..7b86e231fb 100644 --- a/Assets/ManagedResources/~Lua/View/PlayerLiveView.lua +++ b/Assets/ManagedResources/~Lua/View/PlayerLiveView.lua @@ -165,8 +165,8 @@ function PlayerLiveView:OnShowLive() if self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 then isRide = true self.rideLiveGo:SetActive(true) - local curPlayerRole = ConfigManager.GetConfigData(ConfigName.PlayerRole,self.PlayerLiveViewData.ride) - local curArtResourcesConfig = ConfigManager.GetConfigData(ConfigName.ArtResourcesConfig,curPlayerRole.LiveAnimName) + self.RideConfig = ConfigManager.GetConfigData(ConfigName.PlayerRole,self.PlayerLiveViewData.ride) + local curArtResourcesConfig = ConfigManager.GetConfigData(ConfigName.ArtResourcesConfig,self.RideConfig.LiveAnimName) local curLocalScale = Vector3.New(curArtResourcesConfig.Scale,curArtResourcesConfig.Scale,curArtResourcesConfig.Scale) local curLocalPosition = Vector3.New(curArtResourcesConfig.Position[1],curArtResourcesConfig.Position[2],0) self.rideLiveStr = curArtResourcesConfig.Name @@ -175,11 +175,8 @@ function PlayerLiveView:OnShowLive() if self.rideLivSkeletonGraphic then self.rideLivSkeletonGraphic.AnimationState:SetAnimation(0, RIDE_WALK_DIR.IDLE_FRONT.animation, true) end - if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then - self:SetSiblingIndexPlayerOrRide(2) - else - self:SetSiblingIndexPlayerOrRide(1) - end + -- 默认向前,设置层级 + self:SetSiblingIndexPlayerOrRide(1) end --称号 @@ -234,12 +231,8 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.IDLE_FRONT) end - if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then - self:SetSiblingIndexPlayerOrRide(2) - else - self:SetSiblingIndexPlayerOrRide(1) - end - + -- 设置层级 + self:SetSiblingIndexPlayerOrRide(1) elseif dir == WALK_DIR.IDLE_BACK then-- 站立_向后 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then @@ -252,6 +245,8 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.IDLE_BACK) end + + -- 设置层级 self:SetSiblingIndexPlayerOrRide(2) elseif dir == WALK_DIR.IDLE_LEFT then-- 站立_向左 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then @@ -265,7 +260,8 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.IDLE_LEFT) end - self:SetSiblingIndexPlayerOrRide(2) + -- 设置层级 + self:SetSiblingIndexPlayerOrRide(3) elseif dir == WALK_DIR.IDLE_RIGHT then-- 站立_向右 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then @@ -278,7 +274,9 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.IDLE_RIGHT) end - self:SetSiblingIndexPlayerOrRide(2) + + -- 设置层级 + self:SetSiblingIndexPlayerOrRide(4) elseif dir == WALK_DIR.RUN_RIGHT then-- 跑_向右 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then @@ -291,7 +289,8 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.RUN_RIGHT) end - self:SetSiblingIndexPlayerOrRide(2) + -- 设置层级 + self:SetSiblingIndexPlayerOrRide(4) elseif dir == WALK_DIR.RUN_LEFT then-- 跑_向左 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then @@ -304,7 +303,8 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.RUN_LEFT) end - self:SetSiblingIndexPlayerOrRide(2) + -- 设置层级 + self:SetSiblingIndexPlayerOrRide(3) elseif dir == WALK_DIR.RUN_UP then-- 跑_向上 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then @@ -318,6 +318,7 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.RUN_UP) end + -- 设置层级 self:SetSiblingIndexPlayerOrRide(2) elseif dir == WALK_DIR.RUN_DOWN then-- 跑_向下 if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and (self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin > 0) then @@ -331,32 +332,29 @@ function PlayerLiveView:SetWalkDir(dir) elseif self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 and (not self.PlayerLiveViewData.skin or self.PlayerLiveViewData.skin and self.PlayerLiveViewData.skin <= 0) then self:SetWalkDirInfo(nil,RIDE_WALK_DIR.DOWN) end - if (self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0) and self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then - self:SetSiblingIndexPlayerOrRide(2) - else - self:SetSiblingIndexPlayerOrRide(1) - end + -- 设置层级 + self:SetSiblingIndexPlayerOrRide(1) elseif dir == WALK_DIR.JINGYA then-- 惊讶 if self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 then -- self:SetWalkDirInfo(PLAYER_WALK_DIR.IDLE_FRONT,RIDE_WALK_DIR.IDLE_FRONT) else self:SetWalkDirInfo(PLAYER_WALK_DIR.JINGYA) end - self:SetSiblingIndexPlayerOrRide(1) + -- self:SetSiblingIndexPlayerOrRide(1) elseif dir == WALK_DIR.LAUCH then-- 发射 if self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 then -- self:SetWalkDirInfo(PLAYER_WALK_DIR.IDLE_FRONT,RIDE_WALK_DIR.IDLE_FRONT) else self:SetWalkDirInfo(PLAYER_WALK_DIR.LAUCH) end - self:SetSiblingIndexPlayerOrRide(1) + -- self:SetSiblingIndexPlayerOrRide(1) elseif dir == WALK_DIR.TOUCH then-- 轻按 if self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 then -- self:SetWalkDirInfo(PLAYER_WALK_DIR.IDLE_FRONT,RIDE_WALK_DIR.IDLE_FRONT) else self:SetWalkDirInfo(PLAYER_WALK_DIR.TOUCH) end - self:SetSiblingIndexPlayerOrRide(1) + -- self:SetSiblingIndexPlayerOrRide(1) end end function PlayerLiveView:SetWalkDirInfo(playerDir,RideDir) @@ -375,7 +373,23 @@ function PlayerLiveView:SetWalkDirInfo(playerDir,RideDir) self.oldRideDiry = RideDir.y end end -function PlayerLiveView:SetSiblingIndexPlayerOrRide(type) +-- 根据人物方向设置人物和坐骑的层级关系 +function PlayerLiveView:SetSiblingIndexPlayerOrRide(dir) + if not dir then + return + end + local type = nil + -- 有坐骑时 + if self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0 + and self.RideConfig and self.RideConfig.RideLayer then + type = self.RideConfig.RideLayer[dir] + end + -- 没有坐骑时 + if not type then + local dirSibling = {1, 2, 2, 2} -- 前,后,左,右 + type = dirSibling[dir] + end + -- 根据类型设置层级 if type == 1 then--坐骑靠前 self.playerLiveGo.transform:SetSiblingIndex(2) self.rideLiveGo.transform:SetSiblingIndex(3)