源战役客户端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 

136 líneas
4.2 KiB

GuideSpiritItem = GuideSpiritItem or BaseClass(BaseItem)
function GuideSpiritItem:__init()
self.base_file = "guide"
self.layout_file = "GuideSpiritItem"
self.layer_name = "Main"
self.destroy_imm = true
self.use_background = true
-- self.use_local_view = true
self:Load()
end
function GuideSpiritItem:Load_callback()
self.ModelBtn
= GetChildGameObjects (self.transform,
{
"ModelBtn"
})
self.con,self.SpiritCon
= GetChildTransforms(self.transform,
{
"Con","SpiritCon",
})
self:InitEvent()
local function load_callback()
self:SetSpiritModel()
end
local data = {
clothe_res_id = GuideModel.SpiritBgId,
type = SceneBaseType.StarSoul,
layer_name = self.layer_name,
rotate = Vector3(-15,0,0),
action_name_list = {"idle"},
can_rotate = false,
scale = 50,
position = Vector3(0, 12, 0),
callBack = load_callback,
layout_file = self.layout_file
}
lua_resM:SetRoleModel(self, self.con,data)
end
function GuideSpiritItem:SetSpiritModel()
local function load_callback()
if self.curr_Model == nil then
self.curr_Model = lua_resM:GetPartModel(self, self.con)
end
if self.curr_Model then
self.spirit_root = self.curr_Model.transform:Find("Bone001")
if self.spirit_root then
local function load_finish(go)
if go then
self:SetUILayer(go.transform)
go.transform.localPosition = Vector3(0,0,0)
go.transform.localScale = Vector3.one
go.transform.localRotation = Quaternion.Euler(Vector3.zero)
end
end
local function load_finish_func(go)
if go then
self.BGEffect = go.transform
self:SetUILayer(go.transform)
go.transform.localPosition = Vector3(0,0,0)
go.transform.localScale = Vector3.one
go.transform.localRotation = Quaternion.Euler(Vector3.zero)
end
end
self:AddUIEffect("501001_bone001fx",self.spirit_root.transform,self.layer_name, nil, -1, false, -1, nil, nil, load_finish, nil, nil, true)
self:AddUIEffect("ui_partnershow",self.curr_Model.transform,self.layer_name, nil, -1, false, -1, nil, nil, load_finish_func, nil, nil, true)
self.SpiritCon:SetParent(self.spirit_root.transform)
end
end
end
local data = {
clothe_res_id = GuideModel.SpiritId,
type = SceneBaseType.StarSoul,
layer_name = self.layer_name,
rotate = Vector3(0,180,0),
action_name_list = {"idle2"},
can_rotate = false,
scale = 1,
position = Vector3(2.1, -144.2, 0),
callBack = load_callback,
layout_file = self.layout_file
}
lua_resM:SetRoleModel(self,self.SpiritCon.transform,data)
end
function GuideSpiritItem:InitEvent()
local function clickFunc(target)
if target == self.ModelBtn then
GlobalEventSystem:Fire(EventName.OPEN_GUIDE_SPIRIT_VIEW)
end
end
AddClickEvent(self.ModelBtn,clickFunc)
local function onChangeMainCanvasVisible(ref,visible)
if visible then
local spirt_model = lua_resM:GetPartModel(self, self.SpiritCon)
if spirt_model and spirt_model.gameObject then
local animator = spirt_model.gameObject:GetComponent("Animator")
if animator then
if not self.timer_out then
local onDelay = function( )
if self.timer_out then
GlobalTimerQuest:CancelQuest(self.timer_out)
self.timer_out = nil
end
if animator then
animator:Update(0)
animator:CrossFade("idle2",0.1, 0)
end
end
self.timer_out = setTimeout(onDelay, 0.1)
end
end
end
end
end
self.change_canvas_id = LuaViewManager:getInstance():Bind(LuaViewManager.CHANGE_MAIN_CANVAS_VISIBLE,onChangeMainCanvasVisible)
end
function GuideSpiritItem:__delete()
if self.timer_out then
TimerQuest.CancelQuest(GlobalTimerQuest, self.timer_out)
self.timer_out = false
end
if self.event_id then
self.model:UnBind(self.event_id)
end
if self.change_canvas_id then
LuaViewManager:getInstance():UnBind(self.change_canvas_id)
self.change_canvas_id = nil
end
end