【问题标题】:Roblox animation toolanim and Slash meaningRoblox 动画 toolanim 和 Slash 的含义
【发布时间】:2021-10-16 07:49:19
【问题描述】:

文字字符串“toolanim”和“Slash”如何引用工具的动画?

我只是想了解这些字符串是如何被引用的。

local function Attack ()            
    local anim = Instance.new("StringValue")
    anim.Name = "toolanim"
    anim.Value = "Slash"
    anim.Parent = script.Parent 
end

【问题讨论】:

    标签: animation lua roblox


    【解决方案1】:

    根据manual,默认字符脚本将侦听名称为toolanim 的StringValue。

    您创建此值并为其提供父级。设置 Parent 属性将使其成为该父级的子级。那时父级知道有一个具有该特定名称的 StringValue 并且它将通过播放动画来响应它。 然后该 StringValue 很可能被销毁,脚本将等待另一个实例响应。

    这是 Lua 中的一个非常简单的实现:

    local parent = setmetatable({}, {__newindex = function (t,k,v)
     
      if k == "Child" and v.Name == "toolanim" then
        print("parent: Hey someone gave me a child named toolanim!")
        print("parent: let's see what I need to do!")
        if v.Value == "Slash" then
          print("Slash!!!! <- fancy animation")
        end
      end
    end})
    
    local stringValue = setmetatable({},{__newindex = function (t,k,v)
      if k == "Parent" then
      print("stringValue: Someone gave me a Parent! Hey parent, I'm your child now!")
        rawset(t, "Parent", v)
        v.Child = t
      else
         rawset(t, k, v)
      end
    
    end})
    
    stringValue.Name = "toolanim"
    stringValue.Value = "Slash"
    stringValue.Parent = parent
    

    这会创建一些父对象,如果子对象具有正确的属性,它将运行“动画”。

    当另一个对象得到一个触发整个事情的父对象时,它会将自己设置为父对象的子对象。

    这是使用 Lua 的 __newindex 元方法实现的。如果不清楚,请参考 Lua 参考 manual

    【讨论】:

      猜你喜欢
      • 2022-12-21
      • 2020-12-20
      • 2021-03-21
      • 2019-08-21
      • 2021-09-13
      • 2016-01-18
      • 2020-09-26
      • 2020-01-17
      • 2016-12-28
      相关资源
      最近更新 更多