当前位置: 首页 > 编程日记 > 正文

016-热更新之FishingJoy一

我们在完成对xlua的学习后,现在我们在接下来的几天中,将会用一个案例来学习一下xlua的使用。请大家不用担心,这个课件的使用是基于xlua而开发的。因为我们在这个部分是为了使用xlua,所以我们只在已经做到的案例上进行xlua的学习。好了现在就开始吧。

一、补丁版本的开发

1.xlua的迁入与hotfix的环境配置

首先将从网上下下来的xlua文件,把里面的Assets下的文件的plugins和xlua以及伴生脚本全部拖入unity中。接着我们要在unity中的File-BuildSettings-PlayerSetting-other Settings-Scripting Define synbols下输入 HOTFIX_ENABLE 按Enter

我们在xlua-->Generate Code注入    Hotfix  Engine Editor生成

复杂到FishingJoy\Assets\XLua\src\Editor就行了。

在unity中创建一个C# HotFixScripts

  // Use this for initializationprivate LuaEnv luaEnv;void Start () {luaEnv = new LuaEnv();//添加状态机
        luaEnv.AddLoader(MyLoader);luaEnv.DoString("require'fish'");}private byte[] MyLoader(ref string filePath){string absPath = @"D:\unity  3d\lesson1\FishingJoy\Assets\PlayerPackage\" +filePath + ".lua.txt";return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));}private void OnDisable(){luaEnv.DoString("require'fishDispose'");        }private  void OnDestroy(){luaEnv.Dispose();}

这个就是我们所说的自定义loader

接下来我们就要修复第一个问题

1.点击宝箱领取的金币钻石太拥挤,分散一点。

UI---Treasour---Btn_Treasour-->c# Treasour 在类前下[Hotfix] 在createPrize()上加如[luacallscharp] 然后注入,生成 打开fish.lua.txt

UnityEngine=CS.UnityEngine
--1.点击宝箱领取的金币钻石太拥挤,分散一点。
xlua.hotfix(CS.Treasour,'CreatePrize',function(self)for i=0,4,1 dolocal go=UnityEngine.GameObject.Instantiate(self.gold,self.transform.position+UnityEngine.Vector3(-10+i*40,0,0),self.transform.rotation)go.transform.SetParent(go.transform,self.cavas)local go1=UnityEngine.GameObject.Instantiate(self.diamands,self.transform.position+UnityEngine.Vector3(0,40,0)+UnityEngine.Vector3(-10+i*40,0,0),self.transform.rotation)go1.transform.SetParent(go1.transform,self.cavas)endend
)

写上如上代码 在fishDispose.lua.txt上写下 xlua.hotfix(CS.Treasour,'CreatePrize',nil),就行了

2.玩家金币钻石不够时没有相应处理。

player c# Gun 在Attack上加[luacallscharp]在fish.lua.txt上写下:

xlua.private_accessible(CS.Gun)
xlua.hotfix(CS.Gun,'Attack',function(self)if(UnityEngine.Input.GetMouseButtonDown(0))thenif(self.gold<1+(self.gunLevel-1)*2 or gold==0)thenreturnendself.bullectAudio.clip=self.bullectAudios[self.gunLevel-1]self.bullectAudio:Play()if(self.Butterfly)thenUnityEngine.GameObject.Instantiate(self.Bullects[self.gunLevel-1],self.attackPos.position,self.attackPos.rotation*UnityEngine.Quaternion.Enler(0,0,20))UnityEngine.GameObject.Instantiate(self.Bullects[self.gunLevel-1],self.attackPos.position,self.attackPos.rotation*UnityEngine.Quaternion.Enler(0,0,-20))endUnityEngine.GameObject.Instantiate(self.Bullects[self.gunLevel-1],self.attackPos.position,self.attackPos.rotation)if(not self.canShootForFree)thenself:GoldChange(-1-(self.gunLevel-1)*2)endself.attackCD=0self.attack=falseend
end
)

然后在fishDispose.lua.txt,写下xlua.hotfix(CS.Gun,'Attack',nil)就行了,这样这问题就结束了,记得到注册,并加注入。虽然这里写的比较简单,但是这里还是很容易写错的,我就是犯了一些错误。在初学xlua的时候,花式报错是一定的,我们还是要坚持的,一般的错误就是拼写错了。好了今天的部分就结束了,明天继续。

转载于:https://www.cnblogs.com/jake-caiee/p/9837744.html

相关文章:

从0到1 | 手把手教你如何使用哈工大NLP工具——PyLTP!

作者 | 杨秀璋来源 | CSDN 博客&#xff08;CSDN id&#xff1a;Eastmount&#xff09;&#xff08;本文经作者授权&#xff0c;此系列文章整理后微信平台首发于AI科技大本营&#xff09;【导语】此文是作者基于 Python 构建知识图谱的系列实践教程&#xff0c;具有一定创新性和…

PL/SQL Developer远程访问Oracle数据库

安装oracle对应的版本 &#xff0c;在oracle的安装目录找到oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora这个文件添加上数据库访问的串 LWZC (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST [服务器地址])(PORT 1521))(CONNECT_DATA (SERVER DEDICATED)(SE…

基于shiro的权限设计

shiro介绍 Apache shiro是一个权限控制框架&#xff0c;它将安全认证抽取出来&#xff0c;实现用户身份认证&#xff0c;权限授权&#xff0c;加密&#xff0c;会话管理等功能&#xff0c;是一个通用的安全认证框架&#xff0c;而且还可以用于分布式集群。功能如下 1.验证用户 …

C++ 中隐藏DOS调用的命令行窗口

转自&#xff1a;http://hi.baidu.com/jackyho2000/blog/item/b5c5fabdd3b4db0019d81fbb.html 我演示了一下在MFC程序中怎么应用DOS的dir的命令&#xff0c;可是我们遇到了需要解决的问题&#xff0c;首先就是文件dir.txt的残留问题&#xff0c;其实这个问题很简单&#xff0c;…

Citrix Avalon安装实验手册之一----Avalon概述及实验环境准备

“Avalon”&#xff08;阿瓦隆&#xff09;是思杰下一代桌面/应用交付产品的项目名称&#xff0c;其核心目标是把现有Windows应用和桌面转换成云服务。 其中你最熟悉的XenApp和XenDesktop就是Avalon项目的核心所在。Avalon这个全新解决方案将XenApp、XenDesktop、CloudGateway、…

图片像素、英寸、厘米之间的单位换算

转自&#xff1a;http://hi.baidu.com/cjg501/blog/item/f040fc0898d5379f0b7b8244.html 今天朋友用photoshop处理图片时要把图片保存指定的大小&#xff0c;但她只对厘米要形像感&#xff0c;可是在软件里保存的图片没有这个单位&#xff0c;只能保存的单位为像素&#xff1b;…

创客集结号_你知道单机片和Arduino之间的区别吗

Arduino 是一款便捷灵活、方便上手的开源电子原型平台&#xff0c;包含硬件和软件都是开源的。 开源硬件指与自由及开放原始码软件相同方式设计的计算机和电子硬件。开源硬件开始考虑对软件以外的领域开源&#xff0c;是开源文化的一部分。这个词主要是用来反映自由释放详细信息…

痛!“做C#半年,挣的不如做AI 1个月?”看到第二句泪目……

前两天在网上发现一个热门话题&#xff1a;“做开发一年&#xff0c;在北京月薪不到1万&#xff0c;有点迷茫。” 其中&#xff0c;这个回答我永远忘不了&#xff1a;来源&#xff1a;库库的派派知乎回答&#xff0c;已取得授权在这短短的一条信息里&#xff0c;小编佩服不仅…

刷新记录,算法开源!字节跳动获人体姿态估计竞赛双冠 | CVPR 2019

整理 | Jane出品 | AI科技大本营&#xff08;id&#xff1a;rgznai100&#xff09;【导读】6 月 16--20 日&#xff0c;计算机视觉与模式识别领域顶会 CVPR 2019 在美国长滩举行。每年的 CVPR 盛会除了精彩的论文分享、Workshop 与 Tutorial&#xff0c;还会举办多场涵盖计算机…

java 赋值,算术,一元操作符(翻译自Java Tutorials)

原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/15/2819621.html 英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op1.html 简单赋值操作符 见到的最常用的操作符之一就是简单赋值操作符"".它把值从操作符的右边赋予到左边&#x…

初识Kubernetes(K8s):理论基础

Kubernetes是什么&#xff1f;Kubernetes&#xff0c;简称K8s&#xff0c;是用8代替8个字符“ubernete”而成的缩写。Kubernetes是Google开源的一个容器编排引擎&#xff0c;同时也是一个开源的容器集群管理系统&#xff0c;可以实现容器应用的自动化部署、自动扩缩容、监控和维…

Sobel算子及cvSobel

转自&#xff1a;http://blog.sina.com.cn/s/blog_4bdbec750100mufo.html 由于项目里要用到边缘检测&#xff0c;所以今天研究了一下最简单的梯度的方法。 首先&#xff0c;我们来开一下计算机是如何检测边缘的。以灰度图像为例&#xff0c;它的理论基础是这样的&#xff0c;如…

python全栈开发笔记---------函数

一 数学定义的函数与python中的函数 初中数学函数定义&#xff1a;一般的&#xff0c;在一个变化过程中&#xff0c;如果有两个变量x和y&#xff0c;并且对于x的每一个确定的值&#xff0c;y都有唯一确定的值与其对应&#xff0c;那么我们就把x称为自变量&#xff0c;把y称为因…

OpenCV中的内存泄露问题(cvLoadImage,cvCloneImage)

转自&#xff1a;http://apps.hi.baidu.com/share/detail/30893646 在做项目的过程中&#xff0c;使用OpenCV经常会出现一些内存泄露问题&#xff0c;自己编写的程序出现问题还情有可原&#xff0c;但若是库函数调用和使用时出现&#xff0c;却很令我恼火。花了好长时间和实践的…

41款实用工具,数据获取、清洗、建模、可视化都有了

诸如结构式访谈、非结构式访谈、开放式问卷调查、封闭式问卷调查、记录评论和观察等技术统称为事实调查方法。这种事实调查方法和其他数据获取方法可以采取自动化&#xff0c;而不必使用人工方法。使用具有专用软件的物理设备&#xff08;如终端、传感器和扫描仪等&#xff09;…

OpenCV中的内存泄漏检测

转自&#xff1a;http://chaishushan.blog.163.com/blog/static/130192897200911685559809/ 内存泄漏时程序开发中经常遇到的问题. 而且出现内存泄漏很难检测,但是其导致的结果却是灾难性的. 这里讲一下opencv中内存泄漏检测的一些技巧.OpenCV中关于内存管理主要涉及到以下3个函…

一文全面了解基于内容的推荐算法

作者丨gongyouliu来源 | 转载自大数据与人工智能&#xff08;ID:ai-big-data&#xff09;这篇文章我们主要关注的是基于内容的推荐算法&#xff0c;它也是非常通用的一类推荐算法&#xff0c;在工业界有大量的应用案例。本文会从什么是基于内容的推荐算法、算法基本原理、应用场…

[Nginx优化]分享nginx配置文件及优化说明

1、系统及内核方面 根据服务器用途&#xff0c;建议系统最小化安装或针对web服务器进行系统内核重新编译&#xff1b;在内核参数的一些优化&#xff0c;如下&#xff1a; # Add net.ipv4.tcp_max_syn_backlog 65536 #表示SYN队列的长度 net.core.netdev_max_backlog 3…

laravel项目composer安装

1.下载 Composer &#xff08;https://pkg.phpcomposer.com/#how-to-install-composer&#xff09; 安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行 php -v 查看是否正确输出版本号。 打开命令行并依次执行下列命令安装最新版本的 Composer&#xff1a; 复制php -r…

淘宝装修:第一日 —— 图片轮播

先添加一个自定义内容区&#xff0c;进入源码编辑&#xff0c;如下图所示&#xff1a; 添加源码如下&#xff1a; <TABLE border0 cellSpacing0 cellPadding0 width773 height220> <TBODY> <TR> <TD width773> <P> <MARQUEE height220 behavi…

强化学习大规模应用还远吗?Youtube推荐已强势上线

来源 | 转载自深度传送门导读&#xff1a;本文将介绍在深度学习的强力驱动下&#xff0c;给推荐系统工业界所带来的最前沿的变化。本文主要根据几大顶会2019的最新论文&#xff0c;总结一下深度强化学习给推荐系统以及CTR预估工业界带来的最新进展。 凡是Google出品&#xff0c…

layui select 与 vue 的结合使用

2019独角兽企业重金招聘Python工程师标准>>> 1. 创建一个select元素 <form class"layui-form layui-form-pane all-account-filter-form"><div class"layui-form-item"><div class"layui-inline"><label class&…

OpenCV 2.2.0 CvvImage的使用

转自&#xff1a;http://blog.csdn.net/raocong2010/archive/2011/01/17/6146158.aspx# 前几日&#xff0c;OpenCV 2.2.0版本出现了...但是...以前版本的CvvImage类不见了...为了能够继续使用这个类&#xff0c;下面把这个类的源代码贴出来&#xff0c;使用的时候将该代码加入到…

c/c++标准预定义宏

转自&#xff1a;http://www.eefocus.com/andysun001/blog/10-06/192018_008b3.html 一、标准预定义宏The standard predefined macros are specified by the relevant language standards, so they are available with all compilers that implement those standards. Older c…

阿里AI攻克心血管识别技术,冠脉中心线提取论文入选国际医学影像会议

阿里在医疗AI领域取得新进展&#xff0c;继创下肺结节检测、肝结节诊断技术的重大突破后&#xff0c;又攻克了难度系数更高的心血管识别技术。 近日&#xff0c;阿里达摩院机器智能实验室有关冠状动脉中心线提取的论文已被国际顶级医学影像会议MICCAI 2019提前接收。 阿里AI论…

自由程序员在国外

可靠的做法是&#xff0c;在一些像oDesk这样的网站上找一些临时开发任务&#xff0c;在Linked In网站上提交一份个人简历。这样将有助于你在出行后尽早的找到可干的项目&#xff0c;而不必到时大减价来抢其他程序员的活儿(或消减自己的预算)。 从来不缺乏你可以捐赠代码的开源项…

关于spring aop Advisor排序问题

关于spring aop Advisor排序问题 当我们使用多个Advisor的时候有时候需要排序&#xff0c;这时候可以用注解org.springframework.core.annotation.Order或者实现org.springframework.core.Ordered接口。 示例代码&#xff1a; import org.aspectj.lang.ProceedingJoinPoint; im…

NLP重大突破?一文读懂XLNet“屠榜”背后的原理

作者 | 李理 原文链接&#xff1a;https://fancyerii.github.io/2019/06/30/xlnet-theory/ 本文介绍XLNet的基本原理&#xff0c;读者阅读前需要了解BERT等相关模型&#xff0c;不熟悉的读者建议学习BERT课程。 语言模型和BERT各自的优缺点 在论文里作者使用了一些术语&#…

CSS3支持IE6, 7, and 8的边框属性

我们都知道&#xff0c;IE 6,7不支持新增加的CSS3属性&#xff0c;甚至与IE8是CSS3还没有完全准备好。你知道吗&#xff0c;今天给大家分享一个脚本工具&#xff0c;可以帮助您启用CSS3的支持IE浏览器&#xff08;IE6&#xff09;与新的CSS3属性&#xff0c;包括&#xff1a;bo…

解决:VS 2005/2008 中 fstream 不能处理带有中文路径的问题

转自&#xff1a;http://blog.csdn.net/code_robot/archive/2010/06/23/5688867.aspx 有时候用ifstream或ofstream打开带有中文路径的文件会失败。 解决办法&#xff1a;1、使用C语言的函数设置为中文运行环境setlocale(LC_ALL,"Chinese-simplified"); 2、使用STL函…