ravenfield吧 关注:10,518贴子:112,336
  • 14回复贴,共1

Ravenscript 入门教程翻译+个人解释

只看楼主收藏回复


https://blog.csdn.net/x3464/article/details/105137284
贴吧格式错误多,阅读起来比较麻烦,原贴我发在csdn的
制作你的第一个Ravenscript
Ravenscript是什么?
Ravenscript是在Ravenfield里的一门编程语言。它也是Ravenfield的mod制作工具包的一部分。
Ravenscript基于Lua(Lua也正是一种在许多游戏和游戏引擎中流行的脚本语言),曾熟悉编程语言(熟悉Lua语言会更好)对于你快速上手有很大的帮助。
以下是一个简单的Ravenscript代码示例:

当然,你也可以在 repl.it (官方网站)上面体验Lua的功能


IP属地:浙江1楼2020-03-27 12:06回复

    特性
    Unity使用基于组件(Component)的系统来实现游戏逻辑。 每个组件都负责游戏的一小部分,例如健康池(游戏术语:health pool),交互式按钮(button)或门(door)。 除此之外,组件还可以实现一些复杂的功能,例如游戏的AI。 Ravenscripts也借鉴了这种方法。
    在C#中,组件是通过从 MonoBehaviour 类派生而实现的。 在Ravenscript中,我们将它称作函数 behaviour() (译者注:函数方法)。 这个函数创建并注册一个用户给定名称的Ravenscript方法。 这种方法通过 ScriptedBehaviour 组件添加到Unity对象。
    Ravenscripts存储在 .txt 格式的文件中,并被Unity视为 TextAssets 。 所有Ravenscripts均始于对 behaviour() 的调用用来创建和注册一个类。 对于方法和 .txt 文件,我们通常使用相同的名称
    ScriptedBehaviour 组件接受 Ravenscript TextAsset。 将此组件添加到Unity对象中,以将Ravenscript应用于你制作的武器,车辆,关卡等mod中。


    IP属地:浙江2楼2020-03-27 12:07
    回复
      2025-06-10 22:01:04
      广告

      你的第一段代码
      对于我们的第一个脚本,我们将仅限于打印输出调试消息。 这听上去没那么有意思。 但是,它将让你熟悉如何在单个自定义武器中创建简单的Ravenfield mod的必要步骤。
      启动Unity并打开 Ravenscript Tools Pack。

      图:这是Unity的一个空场景。
      我们的第一个目标是创建一个新的 Weapon Content Mod prefab(自定义武器内容)(译者注:相关prefab在工具包里已有定义,为初学者方便理解,所以不译)。 我们将把Ravenscript附加到一把武器上,然后通过这个content mod导出武器。


      IP属地:浙江3楼2020-03-27 12:08
      回复

        创建Content Mod(附带有自定义内容的mod):
        1.在Assets文件夹下,创建一个名为MyMod的新文件夹(译者注:此举只是方便项目管理)。
        2.在Assets / Content文件夹中找到示例Weapon Content Mod prefab。
        3.选中 Example Weapon Content Mod prefab 后,按Ctrl + D创建一个副本。 将重复项重命名为MyContent
        4.将复制后的prefab移至 MyMod 文件夹。

        图:我们成功创建了一个新的叫做 MyContent 的prefab。
        我们会将脚本附加到AR 15-GL武器上。 为此,我们的 content mod (内容模块)必须导出自定义的AR 15-GL:
        1. 选择MyContent prefab后,将 Weapon Entries Size(武器条目大小) 更改为1
        2. 将Name(名称)设置为 My AR 15-GL(译者注:这个名称随便取,方便你识别即可)
        3. 将 Prefab选项 设置为位于Prefabs / Weapons路径下的AR 15-GL prefab

        图:MyContent 将会用来导出我们自定义的AR 15-GL。
        在Project tab(项目选项卡)中,右键单击 MyContent prefab 旁边。 选择Create(创建)> Ravenscript。 将新的Ravenscript文件命名为 MyBehaviour 。 这将创建一个名为 MyBehaviour.txt 的新Ravenscript文件。
        现在,我们准备打开Visual Studio Code(VSCode)。启动VSCode,然后打开Ravenscript Tools Pack文件夹。(译者注:也可直接在Unity里面双击 MyBehaviour.txt 打开)

        打开在 Assets/MyMod 下的 MyBehaviour.txt 文件。我们的Ravenscript将会包含在这个文件里。
        注:在 5.6 的Unity版本下,.txt格式是必须的。

        该文件应该已经包含一些代码。 就本教程而言,删除所有已有的代码并将以下Lua代码复制并粘贴到MyBehaviour.txt 中
        MyBehaviour.txt :



        IP属地:浙江4楼2020-03-27 12:10
        回复

          该脚本会将“ Hello World”打印到控制台。 现在,我们将该脚本附加到AR 15-GL weapon prefab(武器预制件)上。
          找到并且打开 Weapons Lab 场景(位于Scenes文件夹里面)

          图:加载了 Weapons Lab 场景的Unity画面。
          在scene hierarchy(场景层级)中找到并选中AR 15-GL。

          图:我们选中了在scene hierarchy(场景层级)最下面的AR 15-GL。
          选中AR 15-GL后,添加一个新的Ravenscript组件(译者注:目前实际项目中 Ravenscript 可能叫 ScriptedBehaviour)。 使用 MyBehaviour.txt 作为源。
          如果我们将 Behaviour 字段留空,则 Ravenscript 会自动查找与源文件同名的 Behaviour 。 在这个教程中,它将寻找一个叫做“ MyBehaviour”的 Behaviour 。

          滚动到 Inspector (项目检查器)顶部,然后按Apply(应用)按钮以保存我们对AR 15-GL所做的更改。
          (译者注:也可将场景里的AR-15 GL拖到下面覆盖,效果是一样的)



          IP属地:浙江5楼2020-03-27 12:11
          回复

            现在是时候测试mod了:
            1. 在 Assets / MyMod 下选择MyContent prefab
            2. 在Unity工具栏中,单击Ravenfield Tools > Test Map or Content Mod
            3. Ravenfield将会启动并自动加载测试关卡(其他所有订阅的mod会自动关闭)
            4. 选择My AR 15-GL步枪,然后按DEPLOY(重生)(译者注:也就是你自己起的名的那把枪)
            5. 在键盘上按 Page Up 打开 Ravenscript Console(控制台)

            图:我们的第一段脚本已经在控制台中成功打印了 Hello World 。
            在游戏中重新加载脚本
            当Ravenfield从 Ravenfield Tools Pack 通过 Ravenfield Tools > Test Map or Content Mod 启动游戏(译者注:也就是Unity里上面顶栏的选项),游戏将直接从 Ravenfield Tools 项目文件中加载 Ravenscript 源文件。这方便我们不需要重新导出mod就可以进行更改和测试脚本代码。使用游戏暂停菜单中的 RESTART(重新启动) 重新加载场景和所有脚本。或按Page Down键热重载所有脚本(如果引入新变量,这可能会中断)(热重载:Lua特性,可理解为动态加载)。需要注意的是正常启动游戏时,所有Ravenscript代码都是直接从 .rfc 文件加载的。
            你遇到的第一个bug
            在下一章中,我们将介绍调试代码。也许你已经遇到BUG了?
            以下是一些常见问题及其解决方案:
            当我按Page Up时,控制台没有出现
            1. 你是否使用的是最新版本的Ravenfield?
            2. Ravenscript目前只在beta版本上可用(译者注:ravenfield在steam里设置参加Beta branch测试)
            3. 你是否按 Apply 保存了对AR 15-GL所做的更改?(只场景里改没用,改了之后记得保存为prefab)
            4. 你是否装备了改过的 My AR 15-GL ?
            无法实例化“ MyBehaviour”类
            如果出现以下错误:

            你是不是忘了把代码粘贴到MyBehaviour.txt里面?打开文件看看。还要确保在每个地方都用的是一样的文件名。由于源文件名为MyBehaviour.txt,所以 Ravenscript behaviour也应称为 MyBehaviour。


            IP属地:浙江6楼2020-03-27 12:12
            回复

              由于贴吧不能编辑贴子,无法修正错误,译者能力有限,如有错误请指出,欢迎一起交流


              IP属地:浙江7楼2020-03-27 12:13
              回复
                支持


                IP属地:上海来自Android客户端8楼2020-03-27 12:29
                回复
                  2025-06-10 21:55:04
                  广告
                  支持


                  IP属地:湖南9楼2020-03-27 14:03
                  回复
                    我就等大佬的脚本MOD好了,编辑?不存在的


                    IP属地:广东来自Android客户端10楼2020-03-27 14:23
                    收起回复
                      可以


                      IP属地:广西11楼2020-03-27 17:40
                      回复
                        大佬


                        IP属地:广东来自Android客户端12楼2020-03-27 22:40
                        回复
                          大佬


                          IP属地:四川来自iPhone客户端13楼2020-04-04 22:46
                          回复
                            ……
                            我为啥创建ravenscript和ScriptedBehaviours都没找到……


                            14楼2020-07-12 15:14
                            回复