精华内容
下载资源
问答
  • lua 创建文本,读取文本

    千次阅读 2019-03-30 14:39:41
    创建文件夹 os.execute("md lxw") --写文件 local file = io.open("lxw.txt","w") file:write("happy") file:close() --读文件 local file = io.open("lxw.txt","r") print(file:read('*line')) file:close() .....
    创建文件夹
    os.execute("md lxw")
    
    --写文件
    local file = io.open("lxw.txt","w")
    file:write("happy")
    file:close()
    
    --读文件
    local file = io.open("lxw.txt","r")
    print(file:read('*line'))
    file:close()
    
    展开全文
  • 打开Unity安装目录\Editor\Data\Resources\ScriptTemplates 新建一个名为 89-LuaScript-NewLuaScript.lua.txt 的文本文件 重启Unity 可以了 文本文件意义 优先级-右击Create的菜单名-创建的初始文件名.txt ...

    打开Unity安装目录\Editor\Data\Resources\ScriptTemplates

    新建一个名为 89-LuaScript-NewLuaScript.lua.txt 的文本文件

    重启Unity

    可以了
    文本文件意义
    优先级-右击Create的菜单名-创建的初始文件名.txt

    展开全文
  • 本文主要提供了创建.lua模板以及xlua中的.lua.txt格式的模板文件; 主要参考自:简书-Unity技术 扩展脚本模板(Lua为例) erick_book 原博主的文章中只支持了创建lua文件的模板,由于最近需要使用功能到xlua,而xlua...

    本文主要提供了创建.lua模板以及xlua中的.lua.txt格式的模板文件;

    主要参考自:简书-Unity技术 扩展脚本模板(Lua为例) erick_book

    原博主的文章中只支持了创建lua文件的模板,由于最近需要使用功能到xlua,而xlua的后缀为.lua.txt,所以就加了个扩展;

    正所谓不要重复造轮子嘛,自己简单看了一下代码就搬了过来,做了点简单修改,在这里分享一下;

    主要包含了一下两个脚本,直接移动到自己的项目目录里即可,可以从github上获取,https://github.com/zhimo1997/CustomTools

    使用方式:

    1.lua模板文件

    这个需要自己定义,然后将目录赋值给即可;

    private static readonly string LuaScriptTemplatePath = "Assets/1-LuaTemplate/Editor/LuaTemplate.txt";

    2.lua文件icon

    这一个可用可不用,unity会为其提供默认的icon;

    private static readonly string LuaScriptIconPath = "Assets/Tools/ScriptTemplates/lua_icon64.png";

    using System.Collections;
    using System.Collections.Generic;
    using System.IO;
    using UnityEngine;
    using UnityEditor;
    using UnityEditor.ProjectWindowCallback;
    using Microsoft.VisualBasic;
    
    public static class LuaScriptCreater
    {
        private static readonly string LuaScriptIconPath = "Assets/Tools/ScriptTemplates/lua_icon64.png";
        private static readonly string LuaScriptTemplatePath = "Assets/1-LuaTemplate/Editor/LuaTemplate.txt";
    
        [MenuItem("Assets/Create/Lua Script", false, 81)]
        private static void CreateLuaScript()
        {
            CreateLuaTemplate(".lua");
        }
    
        [MenuItem("Assets/Create/xLua Script", false, 81)]
        private static void CreateXLuaScript()
        {
            CreateLuaTemplate(".txt");
        }
    
        private static void CreateLuaTemplate(string ext){
            if (EditorApplication.isCompiling || EditorApplication.isPlaying)
            {
                EditorUtility.DisplayDialog("警告", "无法在游戏运行时或代码编译时创建lua脚本", "确定");
                return;
            }
    
            Texture2D icon = AssetDatabase.LoadAssetAtPath<Texture2D>(LuaScriptIconPath);
            string scriptDirPath = PathUtil.GetSelectionAssetDirPath();
            
            ProjectWindowUtil.StartNameEditingIfProjectWindowExists(0,
                    ScriptableObject.CreateInstance<CreateLuaScriptAction>(),
                    scriptDirPath + "/NewLuaScript"+ext, icon,
                    LuaScriptTemplatePath);
            
        }
    }
    
    internal class CreateLuaScriptAction : EndNameEditAction
    {
        public override void Action(int instanceId, string pathName, string resourceFile)
        {
    
            string content = File.ReadAllText(PathUtil.GetDiskPath(resourceFile));
            string fileName = Path.GetFileNameWithoutExtension(pathName);
            content = content.Replace("#NAME#", fileName);
    
            string fullName = PathUtil.GetDiskPath(pathName);
            File.WriteAllText(fullName, content);
            AssetDatabase.ImportAsset(pathName);
    
            string ext=Path.GetExtension(pathName);
    
            if(ext==".txt"){
                string oldPathName=pathName;
                string newPathName=Path.ChangeExtension(pathName,".lua");
                newPathName+=".txt";
    
                if(File.Exists(PathUtil.GetDiskPath(oldPathName))){
                    File.Move(PathUtil.GetDiskPath(oldPathName),PathUtil.GetDiskPath(newPathName));
                    pathName=newPathName;
                }
            }
    
            Object obj = AssetDatabase.LoadAssetAtPath(pathName, typeof(UnityEngine.Object));
    
            ProjectWindowUtil.ShowCreatedAsset(obj);
            AssetDatabase.Refresh();
        }
    }
    using UnityEngine;
    using UnityEditor;
    using System;
    using System.IO;
    public static class PathUtil
    {
        public static string GetAssetPath(string dirPath)
        {
            dirPath = dirPath.Replace("\\", "/");
            if (dirPath.StartsWith(Application.dataPath))
            {
                return "Assets" + dirPath.Replace(Application.dataPath, "");
            }
            return string.Empty;
        }
    
        public static string GetDiskPath(string assetPath)
        {
            if (string.IsNullOrEmpty(assetPath))
            {
                return string.Empty;
            }
            assetPath = assetPath.Replace("\\", "/");
            if (!assetPath.StartsWith("Assets"))
            {
                return string.Empty;
            }
            return Application.dataPath + assetPath.Substring(assetPath.IndexOf("Assets") + 6);
        }
    
        public static string GetSelectionAssetDirPath()
        {
            string path = "Assets";
            foreach (UnityEngine.Object obj in Selection.GetFiltered(typeof(UnityEngine.Object), SelectionMode.Assets))
            {
                if(obj == null)
                {
                    continue;
                }
                path = AssetDatabase.GetAssetPath(obj);
                if(Path.HasExtension(path))
                {
                    path = Path.GetDirectoryName(path);
                }
                break;
            }
            return path;
        }
    }

     

     

    展开全文
  • Cocos lua给控件创建触摸事件处理 1.单点触摸 --测试代码,新增Label local txt_label = cc.LabelTTF:create("测试触摸","Courier",50); txt_label:addTo(self) txt_label:setPosition(yl.WIDTH/2,yl.HEIGHT/2 - ...

    Cocos lua给控件创建触摸事件处理

    1.单点触摸

    	--测试代码,新增Label
        local txt_label = cc.LabelTTF:create("测试触摸","Courier",50);
        txt_label:addTo(self)
        txt_label:setPosition(yl.WIDTH/2,yl.HEIGHT/2 - 100);
        self.txt_label = txt_label
        
        
    	--单点触摸监听
        local txtlisteneronebyone = cc.EventListenerTouchOneByOne:create();
    
    
        --单点触摸处理函数
        local function onTouchBegan( touch , event)
            local pos = touch:getLocation()
            pos = self.txt_label:convertToNodeSpace(pos)
            local rec = cc.rect(0, 0, self.txt_label:getContentSize().width, self.txt_label:getContentSize().height)
            if true == cc.rectContainsPoint(rec, pos) then
                --print("===========单点触摸开始=============")
            end
            return true --返回true,代表事件继续传递,后续可执行move,ended等事件.  返回false则终止事件传递
        end
        local function onTouchMove( touch , event)
            local pos = touch:getLocation()
            pos = self.txt_label:convertToNodeSpace(pos)
            local rec = cc.rect(0, 0, self.txt_label:getContentSize().width, self.txt_label:getContentSize().height)
            if true == cc.rectContainsPoint(rec, pos) then
                --print("===========单点移动开始=============")
                self.txt_label:setPosition(touch:getLocation())
            end
            return true
        end
        local function onTouchEnded( touch , event)
            local pos = touch:getLocation()
            pos = self.txt_label:convertToNodeSpace(pos)
            local rec = cc.rect(0, 0, self.txt_label:getContentSize().width, self.txt_label:getContentSize().height)
            if true == cc.rectContainsPoint(rec, pos) then
                print("===========单点触摸结束=============")
                self.txt_label:setPosition(yl.WIDTH/2,yl.HEIGHT/2 - 100)
            end
            return true
        end
        
    	--注册单点触摸
        txtlisteneronebyone:registerScriptHandler(onTouchBegan,cc.Handler.EVENT_TOUCH_BEGAN )
        txtlisteneronebyone:registerScriptHandler(onTouchMove,cc.Handler.EVENT_TOUCH_MOVED )
        txtlisteneronebyone:registerScriptHandler(onTouchEnded,cc.Handler.EVENT_TOUCH_ENDED )
        
         --把事件监听添加进事件管理器
        local eventDispatcher = cc.Director:getInstance():getEventDispatcher()
        eventDispatcher:addEventListenerWithSceneGraphPriority(txtlisteneronebyone, self.txt_label)
    

    2.多点触摸

    	--测试代码,新增两个Label
        local txt_label = cc.LabelTTF:create("测试触摸","Courier",50);
        txt_label:addTo(self)
        txt_label:setPosition(yl.WIDTH/2,yl.HEIGHT/2 - 100);
        self.txt_label = txt_label
    
        local txt_label2 = cc.LabelTTF:create("测试触摸","Courier",50);
        txt_label2:addTo(self)
        txt_label2:setPosition(yl.WIDTH/2,yl.HEIGHT/2 + 300);
        self.txt_label2 = txt_label2
        
     	--创建多点触摸监听
        local txtlistenerallatonce = cc.EventListenerTouchAllAtOnce:create();
    
    	--多点触摸处理函数
        local function onTouchesBegan( touches , event)
            for k,v in ipairs(touches) do			--多点触摸传递进来是一个容器,用遍历来读取元素
                local pos = self:convertToNodeSpace(v:getLocation())
                local box1 = self.txt_label:getBoundingBox()
                local box2 = self.txt_label2:getBoundingBox()
                if true == cc.rectContainsPoint(box1, pos) or true == cc.rectContainsPoint(box2, pos) then
                    print("多点触摸开始")
                    return true --返回true,代表事件继续传递,后续可执行move,ended等事件.  返回false则终止事件传递
                end
            end
        end
        local function onTouchesMove( touches , event)
            for k,v in ipairs(touches) do
                local pos = self:convertToNodeSpace(v:getLocation())
                local box1 = self.txt_label:getBoundingBox()
                local box2 = self.txt_label2:getBoundingBox()
                if true == cc.rectContainsPoint(box1, pos) or true == cc.rectContainsPoint(box2, pos) then
                    print("多点触摸移动")
                    if true == cc.rectContainsPoint(box1, pos) then 
                        self.txt_label:setPosition(v:getLocation())
                    elseif true == cc.rectContainsPoint(box2, pos) then
                        self.txt_label2:setPosition(v:getLocation())
                    end
                    return true --返回true,代表事件继续传递,后续可执行move,ended等事件.  返回false则终止事件传递
                end
            end
        end
        local function onTouchesEnded( touches , event)
            print("多点触摸结束")
            return true 
        end
    
    
        --注册多点触摸
        txtlistenerallatonce:registerScriptHandler(onTouchesBegan,cc.Handler.EVENT_TOUCHES_BEGAN)
        txtlistenerallatonce:registerScriptHandler(onTouchesMove,cc.Handler.EVENT_TOUCHES_MOVED)
        txtlistenerallatonce:registerScriptHandler(onTouchesEnded,cc.Handler.EVENT_TOUCHES_ENDED)
        
    	--把事件监听添加进事件管理器
        local eventDispatcher =  cc.Director:getInstance():getEventDispatcher()
        eventDispatcher:addEventListenerWithSceneGraphPriority(txtlistenerallatonce, self)
    
    展开全文
  • Unity Project面板右键菜单创建lua文件

    千次阅读 2017-04-26 16:31:10
    unity Project面板右键Create按键不能创建lua文件,每次都得在外面创建一个txt,然后改扩展名变成lua文件,好蛋疼,有木有,于是就度娘,发现真有偷懒方法。using UnityEngine; using System.Collections; using ...
  • Unity-编辑器创建Lua脚本模版-热更新

    千次阅读 2017-05-03 16:53:23
    方法 一个简单的方法: 打开Unity安装目录\Editor\Data\... 新建一个名为 89-LuaScript-NewLuaScript.lua.txt 的文本文件 重启Unity 可以了 (PS: 文件里的 #SCRIPTNAME# 也会自动替换) 原理 文件
  • local txt_label = cc.LabelTTF:create("测试触摸","Courier",50); txt_label:addTo(self) txt_label:setPosition(yl.WIDTH/2,yl.HEIGHT/2 - 100); self.txt_label = txt_label local txt_label2 = cc....
  • [Unity][Android][LUA][IOS]读取写入txt文件

    千次阅读 2017-11-06 18:41:15
    接着上一篇继续 [Unity][LUA][SLUA]选择LUA库导入Unity中 ...从text文件 中读取内容,并创建 新的 文件test1.txt,替换 test1.txt 的某些内容。 显示结果 test1文件 using System.Collections
  • 1.首先下一个python,安装 ...3.打开cmd执行下面命令,或新建txt文档,输入下面命令,改格式为bat,打开自动执行 cd /d E:\cocos2d-x-2.2.1\cocos2d-x-2.2.1\tools\project-creator create_project.py -pr
  • Lua的系统学习(杂)_使用uLua在Unity中创建一个Sphere小球 首先在桌面上创建一个ulua.txt,然后创建一个C#脚本挂摄像机上,C#脚本具体如下: using System.Collections; using System.Collections.Generic; using ...
  • 在安装完成了 lua 环境以后我们在 E盘下边创建一个 txt 里面写一句话 hello world , 然后将它改为 .lua 文件 然后按住 Win + R ,打开 cmd 窗口命令行 这里我使用这个进行打开并且进行更改: 然后回到控制台...
  • unity中加载lua文件

    千次阅读 2019-03-06 16:40:18
    在Resources下创建lua文件,此处注意格式需要是:文件名.lua.txt,这样才能加载到lua文件。 --lua文件中的代码 NumTable = {2,56,78,66,45,36,124,99,83,5} GetMaxNum = function (table) -- body local maxNum = ...
  • 创建简单脚本创建 lua_bundle_test.txt 内容很简单: print(‘从服务器加载,并执行成功啦’);使用BundleManager制作Bundle制作Bundle 配置Bundle 之后Build 将该目录剪切到其他目录比如G:\HttpFileServer...
  • unity 扩展 支持lua文件

    2020-08-14 20:28:40
    转载至... 分别有以下功能: 1.右击创建lua 2.inspect视图,浏览lua文件 3.实现拖拽DefaultAsset(unity暂时不知道.lua文件是什么,.txt文件它知道是text资源,所以默认为DefaultAsset) ...
  • --创建名字为123.txt 内容为456的文件 local file = io.open("123.txt","w") file:write("456") file:close()     --[[    @引用:require("FileLib")  @调用:...
  • Lua文件操作

    2020-10-02 11:16:17
    在实现文件操作之前 如果大家也有乱码问题的话 ...创建一个txt类型的文本文档 其中我们可以写一些内容 首先是“r” 我们可以在控制台输出内容 file=io.open("test.txt","r")--打开文件(选择类型) io.input(file)
  • 在Unity安装目录下Editor\Data\Resources\ScriptTemplates 创建一个(87-Lua Script-NewLuaScript.lua.txt )文件 在编辑器下预览Lua文件 using UnityEngine; using UnityEditor; using System.IO; ...
  • 一,LUA打开文件local file = io.open("file.txt","r"); 解释--打开文件“file.txt” 以只读的方式打开,以下是各种打开模式的介绍:模式 描述"r" 只读模式,就是打开一个现有的文件...
  • 刚刚开始学用lua 首先我们去https://github.com/Tencent/xLua 下载lua文件clone or download 安装打开zip包,...然后我们会在unity中看到lua以及被导入接着我们在unity文件夹下创建一个txt文本取名为test.lua.txt ...
  • 介绍 我们在这一篇学习简单的使用lua对UI进行热更新。 过程 首先创建一个最普通的按钮,然后把上一篇写的交互脚本拖上去,用来读取lua文件中的awake,start,update...写好之后把它命名为xluaUITest.lua.txt拖给...
  • lua内置函数读写文件

    2017-03-15 17:59:47
    lua内置函数读写文件 --io.open(文件名,操作方式) --操作方式有"w" 写模式 "r"读模式 "a"追加模式 function writefile_test() myfile=io.open("lisaisai.txt","w&...
  • 正在创建库 D:/weasel/librime/build/lib/Release/rime.lib 和对象 D:/weasel/librime/build/lib/Release/rime.exp lua_gears.obj : error LNK2019: 无法解析的外部符号 _lua_settop,该符号在函数 "...
  • 这是一个python交互式界面,用于为(惊人的) 创建一个Lua配置文件。 更新 我正在尝试将其重写为pyqt5: : 功能: 支持所有conky-draw“形状”: 只需点击几下鼠标就可以绘制它们 移动它们,用鼠标调整它们的大小...
  • 创建该文件是为了为Wireshark的测试套件提供测试捕获文件,但也可能对其他pcapng文件读取软件很有用。 该插件在该存储库的“ output_le”和“ output_be”目录中生成文件。 第一个是小字节序格式的测试捕获,第二...
  • lua 逐行读入文件内容

    千次阅读 2015-09-22 16:52:41
    local filePath = "/var/touchelf/1.txt"--定义变量获取路径文件 function readFile(file1)--创建读取文件函数 assert(file1,"file1 open failed-文件打开失败")--如果文件不存在,则提示:文件打开失败  local ...
  • 零基础学lua第十一天—系统操作 一、前言 上篇文章和大家讲到了lua中的文件操作,今天来讲讲关于系统方面的操作,也就是os模块提供给我们的操作,下面一起来看看吧。...3.创建临时文件 这个函数和io里面的tmpfile比
  • 转换 Excel 文档成为 CSV 和 LUA 格式 作者: zm 创建: 2014-12-09 修改: 2015-03-04 将模块名称从 hhlc 改为 xlc。 1. 安装 第一次使用时,必须先进行安装以保证依赖库存在。可以使用下面的方式调用 pip 来安装...
  • [Unity热更新]更新lua脚本 (一)

    千次阅读 2016-03-03 16:23:22
    在\Editor\Data\Resources\ScriptTemplates目录下可以看到各种的模板文件,模仿命名格式"数字-右键菜单项的名字-默认文件名字.txt",创建文件,然后重启unity,就可以像平时新建脚本一样,新建自

空空如也

空空如也

1 2 3 4
收藏数 65
精华内容 26
关键字:

lua创建txt