首页   注册   登录
blhlg = way to explore
blhlg 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Game Engines
sunny352787
blhlg  ›  游戏开发

发一个在 Unity 中调用 Go 的示例

  •  
  •   sunny352787 · 7 天前 · 819 次点击

    以前写了一个 Unity 中调用 Go 插件的示例,最近在写实时战斗的时候想起来这玩意,和朋友讨论的时候觉得还是有一点用,就发出来给大家研究下

    本质上是使用 cgo 暴露出 Go 写的一些接口交给 Unity 这边使用,不过限制很大,比如 Go 的 interface 什么的没有办法暴露,只能传递一些数值和字符串之类的数据,并且 Go 分配的内存是不可以进行传递的,只能传递 cgo 分配的内存。Unity 这边的 C#在进行交互的时候也是要好好控制内存,挺麻烦的,不过我写代码一向很浪,啥方案都敢尝试也基本都能玩,大家要在正式项目里使用的话还是要耐心踩坑。

    7 条回复    2020-06-29 22:17:30 +08:00
    paoqi2048
        1
    paoqi2048   7 天前
    借楼问个问题:如果是 Lua 调用 Go,是不是也是通过 C 接口去桥接?或者说有什么比较成熟的解决方案?
    sunny352787
        2
    sunny352787   7 天前
    @paoqi2048 看你用在哪里了,Go 嵌入 lua 是有现成的解决方案
    hst001
        3
    hst001   7 天前
    为什么要在 unity 使用 Go?
    sunny352787
        4
    sunny352787   7 天前
    @hst001 简单地说,好玩

    复杂点解释的话,我服务器用 go 写的,有些东西想同样的放到客户端我就得再写一遍
    paoqi2048
        5
    paoqi2048   7 天前
    @sunny352787 所以说 Lua 调用 Go 现在是没什么好的轮子么?得自己造?
    sunny352787
        6
    sunny352787   7 天前
    @paoqi2048 不太明白你想做什么,lua 调用 Go 按我理解就是 Go 的程序中嵌入一个 lua 虚拟机,写的 lua 脚本可以调用宿主的 Go 接口。如果就是 lua 虚拟机想调用 Go 写的组件,类似我这种用法的话,那就只能用 C 接口去调用了,这种应用场景可能比我 Unity 调用 Go 插件的还少吧...
    Jirajine
        7
    Jirajine   7 天前 via Android
    没有 binding 哪个语言都不好调用,有 GC 的由于 GC 的干扰更为尤甚。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1337 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 18:11 · PVG 02:11 · LAX 11:11 · JFK 14:11
    ♥ Do have faith in what you're doing.
    腾讯分分彩网址7039h.com 澳门百家乐_7039hh.com 官方直营 幸运28【官网7039h.com】 亚博_7039hh.com 官方直营提款秒到账 香港赛马会【7039hh.com】打开官网 188金宝博_7039hh.com 官方直营秒提款 bet365体育_7039hh.com 官方提款秒到账 伟德_7039hh.com 官方直营 真人百家乐_7039hh.com 官方直营 永利_7039hh.com 官方直营平台 AG亚游_7039hh.com 官方直营 申博娱乐网_7039hh.com 官网直营提款秒到 188金宝博_7039hh.com 官方直营秒提款