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, - , execMyTestFuction)
(4)
FNativeFunctionLookup GLHGameAUIGameNatives[ ]=
{
MAP_NATIVE(AUIGame,execMyTestFunction)
}
注:这个数组的名字是G+游戏名+类名+Natives
C++与UnrealScript脚本交互的更多相关文章
- scaleform中ActionScript和UnrealScript的交互
转自:http://www.cnblogs.com/NEOCSL/p/4174134.html scaleform是制作UI的好工具: 1.他可以解放程序员用代码控制的UI效果,例如平移,旋转和缩放都 ...
- Unity NGUI 网络斗地主 -发牌 脚本交互
Unity NGUI 网络斗地主 -发牌 脚本交互 @By 灰太龙 Unity4.2.1f4 NGUI 3.0.4 本篇说的问题是脚本与控件的交互! 现在对界面进行了改进,先看副图! 1.制作发牌效果 ...
- shell脚本交互:expect学习笔记及实例详解
最近项目需求,需要写一些shell脚本交互,管道不够用时,expect可以很好的实现脚本之间交互,搜索资料,发现网上好多文章都是转载的,觉得这篇文章还不错,所以简单修改之后拿过来和大家分享一下~ 1. ...
- Shell脚本交互之:自动输入密码
Shell脚本交互之:自动输入密码 2016年04月09日 19:41:26 zhangjikuan 阅读数:58208 标签: Shell交互自动输入密码expect重定向管道 更多 个人分类: A ...
- linux expect 即exp脚本交互功能【原】
场景 expect命令用于任何自动化互动的过程. send – 发送字符串到进程 expect – 等待来自进程的特定的字符串 spawn – 启动命令 安装 expect一开始100%不存在, 手动 ...
- c++与js脚本交互,C++调用JS函数/JS调用C++函数
<!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h1> <p> Java ...
- SWIG 和 Python——c/c++与脚本交互
C 和 C++ 被公认为(理当如此)创建高性能代码的首选平台.对开发人员的一个常见要求是向脚本语言接口公开 C/C++ 代码,这正是 Simplified Wrapper and Interface ...
- c++与js脚本交互,C++调用JS函数JS调用C++函数
一.javascript调用c++,方法有两种 方案1: 1.html编写 <html><head></head><body><h1>TES ...
- vc++调用msscript.ocx解析实现C++与JavaScript脚本交互
ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...
随机推荐
- 用GetTickCount()计算一段代码执行耗费的时间的小例子
var aNow,aThen,aTime:Longint; begin aThen := GetTickCount(); Sleep();//代码段 aNow := GetTickCount(); a ...
- Android模糊效果总结
1. 软件模糊 用软件的方法.利用cpu计算,无sdk版本号要求. 效果图: 关键模糊代码 github链接 原文 链接 译文 链接 演示样例 代码 本文地址 :http://blog.csdn.ne ...
- 跨平台.NET Core--微软开源方向
跨平台.NET Core--微软开源方向 微软宣布.net开源已经有一段时间了,新的跨平台的.net框架叫.NET Core. 当前支持Windows/Linux/OSX/Docker.官网:h ...
- Unix环境高级编程——守护进程记录总结(从基础到实现)
一.概念及其特征 守护进程是系统中生存期较长的一种进程,常常在系统引导装入时启动,在系统关闭时终止,没有控制终端,在后台运行.守护进程脱离于终端是为了避免进程在执行过程中的信息在任何终端上显示并且进程 ...
- Vue设置导航栏为公共模块并在登录页不显示
1.公共模块的内容可以放在App.vue中但是通常登录页面是不需要导航的,那么就需要规避登录页这时,就可以采用keep-alive结合$route.meta来实现这个功能.keep-alive 是 V ...
- android菜鸟学习笔记16----Android项目打包安装过程(Run as Android Application)
右击项目名称,Run as Android Appication之后,Android项目打包安装过程: 1.打包生成.apk文件: 1)把源码中的.java文件编译生成.class文件 2)将所有的. ...
- framemarker的使用
1 什么是framemarker framemarker是网页模版和数据模型的结合体.装载网页的时候,framemarker自动从数据模型中提取数据并生成html页面. 2 framemarker怎么 ...
- 我的Android进阶之旅------>Android使用AlarmManager全局定时器实现定时更换壁纸
该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...
- 通过崩溃trace来查找问题原因
从友盟中, 我们可能会得到如下信息: Application received signal SIGSEGV (null) ( 0 CoreFoundation 0x359348a7 __except ...
- SpringMVC的API和Spring的官方说明文档的地址。
SpringMVC的API和Spring的官方说明文档的地址. 1.SpringMVC的API的URL: http://docs.spring.io/spring/docs/current/javad ...