local function onHit(inst, data)
if data and data.damage and data.target then
local target = data.target
local damage = data.damage
damage = damage * 1
inst.components.talker:Say("Unhide !")
target.components.health:DoDelta(-damage)
-- SpawnPrefab("statue_transition").Transform:SetPosition(target:GetPosition():Get())
local dark1 = SpawnPrefab("statue_transition")
dark1.Transform:SetPosition(target:GetPosition():Get())
dark1.Transform:SetScale(0.5,4,0.5)
SpawnPrefab("explode_small").Transform:SetPosition(target:GetPosition():Get())
-- if target is dead the level up
if target.components.health:IsDead() then
levelUp(inst)
end
end
end
特效要达成到想要的效果,必须要加上
dark1.Transform:SetScale(0.5,4,0.5)
不过SetScale()函数是什么意思并不太懂,于是通过notepad++搜索饥荒scripts文件中的代码找到了以下结果
scaler.lua
--- Tracks the herd that the object belongs to, and creates one if missing
local Scaler = Class(function(self, inst)
self.inst = inst
self.scale = 1
end)
function Scaler:ApplyScale()
function Scaler:OnSave()
function Scaler:OnLoad(data)
function Scaler:SetScale(scale)
self.scale = scale
self:ApplyScale()
end
return Scaler
好像并没有什么结果,对了statue_transition来自fx.lua文件中,
好吧,基础有限,容我再找找看
SetScale()是设置图片放缩的,此处设立了三个值0.5,4,0.5
在饥荒中,坐标为x,y,z,这里的y表示的好像是竖轴,与世界坐标系貌似不太一样,简而言之,缩短长宽,放大高度