zoukankan      html  css  js  c++  java
  • C++与UnrealScript脚本交互

    转自:http://m.blog.csdn.net/blog/qweewqpkn/39932499

    一.c++调用uc脚本中的函数

    举例:

    1. 在脚本MenuManager.uc文件中实现函数:

    event LoadFrontend()
    {
      ..............
    }

    这个脚本对应的c++文件为:MenuManager.cpp

    2. 修改完uc脚本之后,我们要立刻进行编译脚本,方法如下:

    打开cmd进入到unkgame.exe这个文件的目录,输入命令:udkgame.exe make -full -debug 进行编译。

    3. 我们在c++调用这个uc中的这个函数的形式是:

    UMenuManager::GetInstance().eventLoadFrontend();

    先得到UMenuManger这个类的一个实例,然后调用函数,可以看到我们调用的函数形式变为了:event 与 LoadFrontend 组合的函数名。这应该是unreal的规定。

    二.uc脚本调用C++中的函数

    举例:

    1. 在脚本MenuManager.uc 文件中声明:

    native final function MyTestFunction()     //  (注:因为返回值是void,所以这里没有写出来)

    2. 修改完uc脚本之后,我们要立刻进行编译脚本,方法如下:

    打开cmd进入到unkgame.exe这个文件的目录,输入命令:udkgame.exe make -full -debug 进行编译。

    3. 在MenuManager.uc对应的MenuManager.cpp文件中实现在uc脚本中声明的函数,形式如下:

    void UMenuManager::MyTestFunction()
    {
      ....................//实现
    }

    4. 在任何uc脚本中就可以调用这个showLHmessage函数了,如下:

    MenuMgrRef.MyTestFunction();

    还是首先得到了实例,然后调用函数。

    三.实现细节

    1.用二来举例,讲解unreal实现的细节,为什么这样就实现了交互?

       当我们在UC脚本调用C++函数的第二部完成后,即编译完UC脚本。此时会在我们指定的一个头文件.h中生成相关代码

    (1)

    class AUIGame
    {
        void MyTestFunction()
        
        ..........
        
        DECLARE_FUNCTION(execMyTestFunction)
        {
            P_FINISH;
    
            this->MyTestFunction();
        }
    }

    (3)

    AUTOGENERATE_FUNCTION( AUIGame, -1 , execMyTestFuction)

    (4)

    FNativeFunctionLookup GLHGameAUIGameNatives[ ]=
    {
        MAP_NATIVE(AUIGame,execMyTestFunction)
    }

    注:这个数组的名字是G+游戏名+类名+Natives

  • 相关阅读:
    【medium】78. Subsets
    【easy】784. Letter Case Permutation
    【easy】671. Second Minimum Node In a Binary Tree
    【easy】Number of Segments in a String 字符串中的分段数量
    【easy】268. Missing Number
    【easy】235. Lowest Common Ancestor of a Binary Search Tree
    【easy】198. House Robber 123总结……
    【easy】438.Find All Anagrams in a String 找出字符串中所有的变位词
    【easy-】437. Path Sum III 二叉树任意起始区间和
    【easy】437. Path Sum III 二叉树任意起始区间和
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/4477250.html
Copyright © 2011-2022 走看看