【坐骑】坐骑和人物层级改为表配置

dev_chengFeng
gaoxin 2021-11-01 15:53:33 +08:00
parent 8a7b7c0ca3
commit 44cb4eb282
1 changed files with 40 additions and 26 deletions

View File

@ -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)