【坐骑】添加各个方向的偏移配置

dev_chengFeng
gaoxin 2021-11-01 16:27:03 +08:00
parent 44cb4eb282
commit 1b0613673c
1 changed files with 25 additions and 2 deletions

View File

@ -168,9 +168,9 @@ function PlayerLiveView:OnShowLive()
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.RidePosition = Vector3.New(curArtResourcesConfig.Position[1],curArtResourcesConfig.Position[2],0)
self.rideLiveStr = curArtResourcesConfig.Name
self.rideLive = poolManager:LoadLive(self.rideLiveStr, self.rideLiveGo.transform, curLocalScale,curLocalPosition)
self.rideLive = poolManager:LoadLive(self.rideLiveStr, self.rideLiveGo.transform, curLocalScale, self.RidePosition)
self.rideLivSkeletonGraphic = self.rideLive:GetComponent("SkeletonGraphic")
if self.rideLivSkeletonGraphic then
self.rideLivSkeletonGraphic.AnimationState:SetAnimation(0, RIDE_WALK_DIR.IDLE_FRONT.animation, true)
@ -233,6 +233,7 @@ function PlayerLiveView:SetWalkDir(dir)
end
-- 设置层级
self:SetSiblingIndexPlayerOrRide(1)
self:SetRideOffset(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
@ -248,6 +249,7 @@ function PlayerLiveView:SetWalkDir(dir)
-- 设置层级
self:SetSiblingIndexPlayerOrRide(2)
self:SetRideOffset(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
if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then
@ -262,6 +264,7 @@ function PlayerLiveView:SetWalkDir(dir)
end
-- 设置层级
self:SetSiblingIndexPlayerOrRide(3)
self:SetRideOffset(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
@ -277,6 +280,7 @@ function PlayerLiveView:SetWalkDir(dir)
-- 设置层级
self:SetSiblingIndexPlayerOrRide(4)
self:SetRideOffset(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,6 +295,7 @@ function PlayerLiveView:SetWalkDir(dir)
end
-- 设置层级
self:SetSiblingIndexPlayerOrRide(4)
self:SetRideOffset(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
@ -305,6 +310,7 @@ function PlayerLiveView:SetWalkDir(dir)
end
-- 设置层级
self:SetSiblingIndexPlayerOrRide(3)
self:SetRideOffset(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
@ -320,6 +326,7 @@ function PlayerLiveView:SetWalkDir(dir)
end
-- 设置层级
self:SetSiblingIndexPlayerOrRide(2)
self:SetRideOffset(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
if self.PlayerLiveViewData.ride == PlayerRide.YUJIAN then
@ -334,6 +341,7 @@ function PlayerLiveView:SetWalkDir(dir)
end
-- 设置层级
self:SetSiblingIndexPlayerOrRide(1)
self:SetRideOffset(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)
@ -398,6 +406,21 @@ function PlayerLiveView:SetSiblingIndexPlayerOrRide(dir)
self.playerLiveGo.transform:SetSiblingIndex(3)
end
end
-- 根据人物方向设置设置坐骑的偏移值
function PlayerLiveView:SetRideOffset(dir)
if not dir then
return
end
local offset = {0, 0}
-- 有坐骑时
if self.PlayerLiveViewData.ride and self.PlayerLiveViewData.ride > 0
and self.RideConfig and self.RideConfig.RideOffset then
offset = self.RideConfig.RideOffset[dir]
end
if self.RidePosition then
self.rideLiveGo.transform.localPosition = Vector3.New(self.RidePosition.x + offset[1], self.RidePosition.y + offset[2], self.RidePosition.z)
end
end
--界面销毁时调用(用于子类重写)
function PlayerLiveView:OnClose()
if self.rideLive then