73 lines
3.3 KiB
Lua
73 lines
3.3 KiB
Lua
require("Modules/Map/Config/MapConfig")
|
|
local MapPointConfig = ConfigManager.GetConfig(ConfigName.MapPointConfig)
|
|
MonsterLiveView = {}
|
|
|
|
function MonsterLiveView:New(gameObj,iconId,scale)
|
|
local b = {}
|
|
b.gameObject = poolManager:LoadAsset("UI_MapPoint", PoolManager.AssetType.GameObject)
|
|
b.gameObject.transform:SetParent(gameObj.transform)
|
|
b.gameObject.name = "EventPoint"
|
|
b.gameObject:SetActive(true)
|
|
b.transform = b.gameObject.transform
|
|
b.transform.localScale = Vector3.one
|
|
b.gameObject.transform.localPosition = Vector3.zero
|
|
Util.GetGameObject(b.gameObject, "shadow"):SetActive(true)
|
|
b.resPath = "UI_MapPoint"
|
|
b.livePath = MapFloatingConfig[iconId].name
|
|
b.iconId = iconId
|
|
b.live2d = poolManager:LoadLive(MapFloatingConfig[iconId].name, Util.GetTransform(b.gameObject, "root"),
|
|
MapFloatingConfig[iconId].scale, MapFloatingConfig[iconId].position)
|
|
b.skeleton = b.live2d:GetComponent("SkeletonGraphic")
|
|
self.oldPlayerDirAnimation = 0
|
|
self.oldPlayerDiry = 0
|
|
setmetatable(b, { __index = MonsterLiveView })
|
|
return b
|
|
end
|
|
|
|
function MonsterLiveView:SetWalkDir(dir)
|
|
if dir == WALK_DIR.IDLE_FRONT then-- 站立_向前
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.IDLE,true)
|
|
elseif dir == WALK_DIR.IDLE_BACK then-- 站立_向后
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.IDLEBACK,true)
|
|
elseif dir == WALK_DIR.IDLE_LEFT then-- 站立_向左
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.LEFT,true)
|
|
elseif dir == WALK_DIR.IDLE_RIGHT then-- 站立_向右
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.RIGHT,true)
|
|
elseif dir == WALK_DIR.RUN_RIGHT then-- 跑_向右
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.RUN_RIGHT,true)
|
|
elseif dir == WALK_DIR.RUN_LEFT then-- 跑_向左
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.RUN_LEFT,true)
|
|
elseif dir == WALK_DIR.RUN_UP then-- 跑_向上
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.RUN_UP,true)
|
|
elseif dir == WALK_DIR.RUN_DOWN then-- 跑_向下
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.RUN_DOWN,true)
|
|
elseif dir == WALK_DIR.DEAD_LEFT then-- 死亡 左
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.DEAD_LEFT,false)
|
|
elseif dir == WALK_DIR.DEAD_RIGHT then-- 死亡 右、
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.DEAD_RIGHT,false)
|
|
elseif dir == WALK_DIR.DEAD_BACK then-- 死亡 后
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.DEAD_BACK,false)
|
|
elseif dir == WALK_DIR.DEAD_FRONT then-- 死亡 前
|
|
self:SetWalkDirInfo(MONSTER_WALK_DIR.DEAD_FRONT,false)
|
|
end
|
|
end
|
|
function MonsterLiveView:SetWalkDirInfo(playerDir,isLoop)
|
|
if playerDir and (self.oldPlayerDirAnimation ~= playerDir.animation or self.oldPlayerDiry ~= playerDir.y) then
|
|
self.skeleton.transform.localEulerAngles = Vector3.New(0, playerDir.y, 0)
|
|
self.skeleton.AnimationState:SetAnimation(0, playerDir.animation, isLoop)
|
|
self.oldPlayerDirAnimation = playerDir.animation
|
|
self.oldPlayerDiry = playerDir.y
|
|
end
|
|
end
|
|
|
|
function MonsterLiveView:OnClose()
|
|
if self.live2d then
|
|
poolManager:UnLoadLive(self.livePath, self.live2d)
|
|
end
|
|
self.live2d = nil
|
|
|
|
if self.gameObject then
|
|
poolManager:UnLoadAsset(self.resPath, self.gameObject, PoolManager.AssetType.GameObject)
|
|
self.gameObject = nil
|
|
end
|
|
end |