精华内容
下载资源
问答
  • Unity 项目知识积累

    2020-05-26 01:36:15
    刘海屏手机怎么处理UI 1.所有UI界面统一右移动处理 2.自行对刘海的尺寸固定一个保守估计值来规避UI的遮挡 3.监听手机翻转事件及时调整设置 Mask组件 Mask组件会产生一个DrawCall,Mask中的图片无法与外界的...

          工作以来笔记就没在博客记了,基本上就写在印象笔记上面,主要是国外上CSDN也不方便,最近找到了一个不错的回国VPN,准备把一些可能工作中常用的笔记搬到CSDN上,整理了下上个项目的笔记,这还是国内做的一个项目,现在准备总结工作一年来的收获,在学点新的技术,准备主攻shader和Dots技术。

    项目知识积累

    UGUI

    自动布局Auto LayOut

    图片自适应文字

    Content Size Fitter
    加 Horizontal Layout Group

    刘海屏手机怎么处理UI

    1.所有UI界面统一右移动处理

    2.自行对刘海的尺寸固定一个保守估计值来规避UI上的遮挡

    3.监听手机翻转事件及时调整设置

    Mask组件

    Mask组件会产生一个DrawCall,在Mask中的图片无法与外界的图片进行合批

    模态对话框

    是指这个对话框弹出的时候,鼠标不能单击这个对话框之外的区域,这种对话框往往是用户进行了某种操作后才出现的。非模态对话框通常用于显示用户需要经常访问的控件和数据,并且在使用这个对话框的过程中需要访问其它窗体的情况。例如:word的查找对话框,可以直接点击任何地方。

    Unity

    组件Component思想

    在传统的结构设计中一般会使用“派生”来描述对象之间的关系。子类通过派生父类,来获得父类的功能。在设计游戏对象时,会根据游戏本身的需要而为游戏对象添加各种功能支持,比如渲染,碰撞,刚体,粒子系统等等。这些通用功能为了能够为各种派生类提供服务,都必须实现到基类中。这样就导致了游戏对象基类变得非常庞大臃肿,即难使用,又难维护。 ”基于组件“的对象模型就是把所有需要提供给游戏对象的基础功能都独立成单独的”组件模块“(Component),一个具体的游戏对象可以将它需要的功能模块组合到一起使用。所有”功能“不再是父类中的接口,而变成子对象实例,为游戏对象提供服务。这样既保证了功能代码的可重用性,又增加了整个对象体系的模块化和灵活度

    协程原理IEnumerator

    功能:控制代码在特定的时机执行;分部执行,遇到条件会挂起,满足条件继续执行

    原理:就是一个迭代器IEnumerator接口有两个方法Current和MoveNext();迭代器方法运行到yield return语句时,会返回一个表达式并保留当前在代码中的位置。当下次调用迭代器函数时执行从该位置重新启动; Unity在每帧做的工作就是:调用协程(迭代器)MoveNext()方法,如果返回true,就从当前位置继续往下执行。
    就是在update下一帧执行多个coroutine里的东西 在单线程里模拟出多线程的效果

    预制体Prefab

     .prefab文件在Unity引擎中,扮演着配置文件的作用,用它将多个组件关联在了一起,组成了一个整体,它默认是一个二进制文件;所有的预置实例链接到原始预置,基本上是它的克隆。不管你的项目存在多少实例,当你对预置进行任何更改,你将看到这些更改将应用于所有实例。

    脚本生命周期

    Awake()--OnEnable()--Start()--FixedUpdate()--Update()--LateUpdate()--OnBecameVisible()--OnGUI()--OnBecameInvisible()--OnDisable()--OnDestroy()--OnApplicationQuit()

    动态加载资源

    Resouces

    只能加载Resources目录中的资源

    AssetBundle

    只能加载AB资源,当前设备允许访问的路径都可以

    WWW

    可以加载任意处资源,包括项目外资源(如远程服务器)

    AssetDatabase

    只能加载Assets目录下的资源,但只能用于Editor

    UnityWebRequest

    WWW类似,它的升级版

    资源加载了要记得卸载,可以节省内存。单一职责原则,资源加载器只负责加载资源,具体业务逻辑不要放进来。资源加载要传路径进去,做到加载器可以复用。图片加载都比较大,最好不要一次性加载,做到加载一张,上一张不用就卸载。卸载最好用Resources.UnloadUnusedAssets();可以把不用的资源卸载

    MonoBehaviour

    继承自MonoBehavoour的类是不可以使用关键字new实例化的

    写先脚本,新class时,先确认自己是需要一个挂载到物体上的组件还是普通的类,如果是自己管理的类和组件没关系,千万不要继承自MonoBehaviour

    Unity不熟悉的API

    CustomEditor(typeof())增加脚本的说明,告诉unity这个组件具有自定义编辑器功能。ExecuteInEditMode可以在编辑模式下就能执行脚本。
    [initializeOnLoad] ,[initializeOnLoadMethod]:允许在Unity加载时初始化编辑器类,而不需要用户进行操作。

    AttributeUsage类的作用就是帮助我们控制定制特性的使用。其实AttributeUsage类就是描述了一个定制特性如何被使用。
    ValidOn:通过这个属性,我们能够定义定制特性应该在何种程序实体前放置。一个属性可以被放置的所有程序实体在AttributeTargets enumerator中列出。通过OR操作我们可以把若干个AttributeTargets值组合起来。
    AllowMultiple:这个属性标记了我们的定制特性能否被重复放置在同一个程序实体前多次。
    Inherited:我们可以使用这个属性来控制定制特性的继承规则。它标记了我们的特性能否被继承。

     Directory类文件操作类:Directory.GetFiles() 获取下一级文件

    HashSet<T>在System.Collections.Generic命名空间中,这个集合基于散列值,插入元素的操作非常快,不需要像List<T>类那样重排集合

    Stopwatch()秒表计时器,用来记录程序运行的时间

    [DisallowMultipleComponent]用于MonoBehaviour或其子类,不能重复添加这个类的组件,重复添加会弹出对话框。

    AudioImporter音频导入器:音频导入器允许您从编辑器脚本修改AudioClip导入设置,让你从编辑器脚本修改音频剪辑导入设置。注意:这是一个编辑器类。要使用它,您必须将脚本放在项目文件夹中的Assets / Editor中。编辑器类位于UnityEditor命名空间中,因此对于C#脚本,您需要添加“使用UnityEditor;” 在脚本的开头

    Gizmos类

    用于场景中给出一个可视化的调试或者辅助设置。

    所有的Gizmos绘制都必须在脚本的OnDrawGizmos或OnDrawGizmosSelected函数中完成。 OnDrawGizmos在每一帧都被调用。所有在OnDrawGizmos内部渲染的Gizmos都是可见的。 OnDrawGizmosSelected尽在脚本所附加的物体被选中时调用。

    材质 materials

    现在游戏常用的材质分PBR(Standard)和不受光材质(unlit),不受光的材质性能更高

    Lua热更新

    Lua语法

    全局变量

    lua里的所有的字符串,如果不是关键字或者运算符,就都是变量。这些变量中,凡是没有local关键字修饰的,就是全局变量。每个LuaState对象,当它加载过Lua代码以后,它里面定义的全局变量,在这个对象生命期内是一直存在的。如果两次调用这个LuaState的某方法,第一次将某全局变量进行了修改,那么第二次,这个全局变量会在第一次修改的基础上继续修改。

    Lua高级用法

    闭包

    词法定界:当一个函数内嵌套另一个函数的时候,内函数可以访问外部函数的局部变量,这种特征叫做词法定界。

    upvalue:内嵌函数可以访问外部函数已经创建的局部变量,而这些局部变量则称为该内嵌函数的外部局部变量(即upvalue)

    闭包是由函数和与其相关的引用环境组合而成的实体,闭包=函数+引用环境。具体代码示例见:https://www.cnblogs.com/msxh/p/8283865.html

    closure(闭合函数)

    若将一个函数写在另一个函数之内,那么这个位于内部的函数便可以访问外部函数中的局部变量,我们把这个函数称为闭包函数,其函数体内的局部变量被称为“非局部变量“和不同变量不同的是该变量被函数体内匿名函数访问并操作,在函数返回后,其值仍然被保留并可用于下一次计算。而且lua每次给新的闭包变量赋值时,都会让不同的闭包变量拥有非独立的”非局部变量“。具体示例见:https://www.cnblogs.com/stephen-liu74/archive/2012/03/21/2410300.html

    关于热更

    更新Lua其实也是更新资源。 Lua被看作一个资源包,Lua代码都是运行时才编译的,不运行的时候就如同一张图片、一段音频一样,都是文件资源;所以更新逻辑只需要更新脚本,不需要再编译,因而Lua能轻松实现“热更新”

    ToLua热更框架

    ToLua是通过方法名绑定的方式来实现这个映射的,首先构造一个Lua虚拟机,在虚拟机启动后对所需的方法进行绑定,在虚拟机运行时可以在Lua中调用特定方法,虚拟机变相地实现了一个解释器的功能,在Lua调用特定方法和对象时,虚拟机会在已绑定的方法中找到对应的C#方法和对象进行操作,并且ToLua已经自动实现了一些绑定的方法 。

    注意事项

    最好不要导出委托,消耗很大

    编程语言

    oop编程

    继承

    继承的方法允许在不改动原程序的基础上对其进行扩充,这样使得原功能得以保存,而新功能也得以扩展。这有利于减少重复编码,提高软件的开发效率

    封装

    能够把一个实体的信息、功能、响应都装入一个单独的对象中的特性

    多态

    同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法

    抽象

    抽象(Abstraction)是简化复杂的现实问题的途径,它可以为具体问题找到最恰当的类定义,并且可以在最恰当的继承级别解释问题

    Lock

    lock 关键字可以用来确保代码块完成运行,而不会被其他线程中断。这是通过在代码块运行期间为给定对象获取互斥锁来实现的

    定义类推荐用私有的只读静态对象,因为如果在lock代码段中改变obj的值,其它线程就畅通无阻了,因为互斥锁的对象变了,object.ReferenceEquals必然返回false

    Volatile

    volatile 关键字指示一个字段可以由多个同时执行的线程修改。声明为 volatile 的字段不受编译器优化(假定由单个线程访问)的限制。这样可以确保该字段在任何时间呈现的都是最新的值。

    通常用于由多个线程访问但不使用 lock 语句对访问进行序列化的字段。有关在多线程方案中使用 volatile 的示例,请参见https://docs.microsoft.com/zh-cn/previous-versions/visualstudio/visual-studio-2008/7a2f3ay4(v=vs.90)

    Volatile关键字可应用于引用类型,指针类型,类型,已知为引用类型的泛型类型参数

    Checked和Unchecked关键字

    用来限定检查或者不检查数学运算溢出的,如果使用了checked发生数学运算溢出时会抛出OverflowException;如果使用了unchecked则不会检查溢出,算错了也不会报错。

    成员变量、字段、与属性

    属性与成员变量类似,它们都提供数据存储,但属性的功能远比成员变量强大。属性由特殊方法(Get   和   Set   访问器)访问。Get   和   Set   访问器允许在设置或检索属性之后验证属性值、执行其他代码或执行其他任务

    成员变量也可以用readonly修饰表示只读的,字段一般在类的内部使用,按照类的设计原则字段都是private的,只能在类的内部使用。属性相当于给字段加了一个保护套。另外字段值可以用作ref、out参数,而属性不能。

    面向对象的编程方法是要抽象,封装,在类中定义的变量是正对类本身而言,我们把它叫做域,它可以为public,private等。属性是针对外部看到的类的特性,是类展示给外部使用者的特性。域可以为public但这样把域声明为public将不利于类的封装,因为外部使用者可以对类进行直接修改。所以我们就可以用到属性,我们只是公开它们的属性,至于如何对其进行赋值(set)如何进行取值(get)都已经进行了封装,对于类外部是不可见的。对于类外部使用者来说只能够使用它,不能控制它。所以在声明的时候可以想清楚要的类的成员还是类的展示给外界的特性。

    游戏性能

    UI

    通过SpritePacker打包图集减少 Batches

    模型

    合批渲染(要求对象的材质是共享的)

    Dynamic Batching 动态批处理

    动态批次是运动的物件在unity中也可以进行批次渲染,动态批次不需要手动设置,是unity自动进行的,但是这里有诸多陷阱和约束,开发者需要遵守一定的限制条件才能享受动态批次的好处。(一定要在同一个光照层中)不能合批的原因  https://www.jianshu.com/p/43efe4d35ccd

    static batching 静态批处理

    场景中的多个物件如果是不移动的(包括位置、缩放、旋转等),并且共享同一材质,比如地形、建筑、花盆等,那么可以选择采用静态批次。静态批次只需要在Inspector勾选static选项即可。静态批次需要注意的是,unity会将进行批次的多个对象合并成一个大的对象,也会导致内存损耗,有时候要避免太多对象静态批次造成的内存过高。

    脚本规范

    Lua脚本中变量的定义,尽量用局部变量,对全局的污染越小越好

    字符串拼接最好用String.Format()程序易读也不用考虑语序问题

    不用的变量手动置空,有利于GC回收垃圾操作

    在写变量前考虑是否会被外界调用,如果不会就设为私有的

    在定义类型Enum时要根据实际类型定义,需要不确定的类型时可以直接设置defult为初始的0号为类型,代码更加规范

    注意在构造函数时要考虑访问级别,是不是允许外界拿到数据或者访问数据,要记得加相应的权限。

    单例Instance也最好在Dispose()方法中置为空,链表Clear()掉

    计算机原理

    内存碎片

    内存碎片通常是由于采用归固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就产生了内部碎片,通常内部碎片难以完全避免。

    外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。

     现在普遍采用的段页式内存分配方式就是将进程的内存区域分为不同的段,然后将每一段由多个固定大小的页组成。通过页表机制,使段内的页可以不必连续处于同一内存区域,从而减少了外部碎片,然而同一页内仍然可能存在少量的内部碎片,只是一页的内存空间本就较小,从而使可能存在的内部碎片也较少。(图见https://blog.csdn.net/tong5956/article/details/74937178)

    Framework

    类,接口

    可以用一个抽象类来实现接口,设置一个handler来持有各个对象,在哪里使用就在那里实例化,用handler来调用,可以在抽象类中做一些公共操作

    接口类似于抽象基类,不能直接实例化接口;接口中的方法都是抽象方法,实现接口的任何非抽象类型都必须实现接口的所有成员。不能包含常量、字段、运算符、实例构造函数、析构函数或类型、不能包含静态成员,接口成员是自动公开的,且不能包含任何访问修饰符。接口自身可从多个接口继承,类和结构可继承多个接口,但接口不能继承类

    确保一个类只负责一种功能,具体的实现都交给上层来做,一个方法也最好只实现一个功能,方法体也不要过长,不好调试和定位错误。

    热更新时默认lua是C#的上层代码,具体实现在lua中写,最好不要C#调用lua的脚本代码的耦合性会很高

    结构与类

    结构:值类型,在栈中分配地址,不能被继承,不可以有默认构造函数,可以添加构造函数,但是必须带参数,创建对象可以不用new,可以包含字段,方法,可以实现结构。Unity中Color是结构实现的,所以为结构分配内存时速度非常快,在结构超出了作用域被删除时速度也很快。

    类:引用类型,在堆中分配地址,可以被继承,可以有默认构造函数,创建对象必须使用new,类中可以给字段赋值,可以包含字段,方法,可以实现接口。

    UML类图与类的关系

    虚线箭头指向依赖;实线箭头指向关联;虚线三角指向接口;实线三角指向父类;空心菱形能分离而独立存在,是聚合;实心菱形精密关联不可分,是组合

    数据结构和算法

    双向链表LinkedList

    表中的每个节点都包含了对前一个和后一个元素的引用

    当元素的数量不是固定的,且存在大量列表的头尾添加的动作时使用

    常用数据结构及分析见:https://www.cnblogs.com/murongxiaopifu/p/4161648.html

    业务需求实现

    跑马灯

    实现文字从右到左滚动播放

    在框架中的导出C#接口的设置脚本中注册进unity的组件类,然后在lua脚本直接调用,主要逻辑写在lua

    在调用回调函数时可以多做一层封装,回调函数的self没填就用nil

    UGUI的设置方面:在panel挂Mask组件,text挂panel下面,text上挂content size fitter组件用来使长度自适应文字。中心点最好设置在text的最左边,方便计算

    给Text文本加下划线

    不增加text的情况给文本添加下划线

    字符都是通过三角面形式渲染出来的,每个字符都是由两个三角面组成,要计算单个字符的位置,就是计算字符所在框体的4个顶点。计算方法和思路见博客:https://blog.csdn.net/YuAnHandSome/article/details/79316789

    html的标签对一般是用栈来操作,遇到开始标签把开始标签进栈,遇到结束标签就把开始标签出栈,这两个就成功组成标签对。可以处理循环嵌套的情况。

    继承Text,重写    protected override void OnPopulateMesh(VertexHelper vertexHelper)方法,可以通过获取绘制的顶点坐标来处理下划线的渲染位置。难点在换行,换行时通过监测顶点X坐标的变化,如果突然变化太大,就说明换行,需要重新找到开始划线与结束划线的坐标。 

    通用提示框,通用飘字提示,通用通知提示

    TODO

    亲友圈排行榜模块

    TODO

    UI自动排序组件

    TODO

    其他

    对象池

    概述:对象池中包含若干提前准备好的若干实例,当需要时从对象池中提取,当不需要时,则重新放入对象池。一方面,使用对象池不需要频繁的产生和销毁实例对象,另一方面,对象池中的实例如果不够程序调用才会继续产生实例,这大大节省了性能。

    优点:复用池中对象,没有分配内存和创建堆中对象的开销, 没有释放内存和销毁堆中对象的开销, 进而减少垃圾收集器的负担, 避免内存抖动
    缺点:并发环境中, 多个线程可能(同时)需要获取池中对象, 进而需要在堆数据结构上进行同步或者因为锁竞争而产生阻塞, 这种开销要比创建销毁对象的开销高数百倍;由于池中对象的数量有限, 势必成为一个可伸缩性瓶颈;很难正确的设定对象池的大小, 如果太小则起不到作用, 如果过大, 则占用内存资源高很难正确的设定对象池的大小

    应用场景:需要多个类的实例,当类实例的创建和销毁开销比较大;对象生命周期很短,频繁的进行创建和销毁。 对象最好是无状态的,否则重复使用前回复原始状态

    同步与异步

    同步:并不是按字面意思的同时或一起,而是指协同步调,协助、相互配合。是按先后顺序执行在发出一个功能调用时,在没有得到返回结果之前一直在等待,不会继续往下执行

    异步:刚好和同步相反,也就是在发出一个功能调用时,不管没有没得到结果,都继续往下执行,异步加载至少有一帧的延迟

    同步的优点:管理方便,资源准备好可以及时返回。缺点:没有异步快
    异步的优点:速度快与主线程无关。缺点:调用比较麻烦,最好的做法是使用回调

    数据的持久化方案

    playerprefs根据项目的需求,看是前端存储还是后端存储,前端存储换设备就失效或者换账号,这个是根据产品需要来看。

    渲染Mesh

    3D世界中任何的面都是由三角形绘制完成的,因为任何无规则的集合图形都可以由三角形来组成。比如四边形,无论是正四边形还是无规则四边形都可以由两个三角形拼接而成。

    Mesh的主要属性内容包括顶点坐标,法线,纹理坐标,三角形绘制序列(三角形的顶点顺序必须是顺时针)

    UGUI会默认为每个元素生成两个三角形用于渲染,也就是说UGUI的元素形状都是举行的,对于每个Text,每个字符都是由(6个顶点组成的)两个三角形来渲染的

    系统运行时,CPU执行计算的过程

    程序以及数据被加载到主内存
    指令和数据被加载到CPU缓存
    CPU执行指令,把结果写到高速缓存
    高速缓存中的数据写回主内存

    图片格式

    unity中纹理最好使用PNG的图片格式,因为PNG使用RGBA的图像渲染格式,可以属于任何一种RGB颜色空间,在加上Alpha(透明度)通道。

    PNG的特性:能在保证最不失真的情况下尽可能压缩图像文件的大小。PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。

    模块耦合

    模块之间是允许流程性耦合的,在一个模块的结束进入到下一个模块之前是必然会有互相的调用的,但是流程一定要规范,自己要知道哪里调用了。
     

    展开全文
  • 光影魔术手 v4.4.1.zip

    2019-07-10 04:37:19
    您还可以将一张图片上的历史操作保存为模板后一键应用到所有图片上,功能强大,对于爱拍照爱处理照片的你,不容错过!   光影魔术手4是一款迅雷公司全新设计开发的产品,希望给广大用户提供一款功能强大,更易...
  • 修复:当相机按钮位置在图片第一张时,点击相册页底部中间的编辑按钮会导致右下角相机按钮也显示出来 修复:仅显示视频时,全部视频文件夹视频重复添加问题 修复:点击视频无法播放问题 感谢:该版本由SMask贡献 ...
  • 图片和头像提速:文章列表和头像都使用了lazyload做按需异步加载,你会发现访问速度提升一大截 2种可选框架:支持3栏和2栏 13种可选颜色风格:基本小清新的颜色都有了 3种列表模式:多图展示、单图展示、无图展示 7...
  • 图片和头像提速:文章列表和头像都使用了lazyload做按需异步加载,你会发现访问速度提升一大截 2种可选框架:支持3栏和2栏 13种可选颜色风格:基本小清新的颜色都有了 3种列表模式:多图展示、单图展示、无图展示 7...
  • 2、给内容页的“一篇”、“下一篇”做了自适应处理,不管标题再怎么长,都会以省略号代替溢出文字。 3、修正了侧边栏“个人资料”头像宽高不均导致撑破边框问题。 4、修正首页、内容页底部“站长”“微语页”不...
  • 1. 修正了某些HTC手机上出现的使用‘导出和导入’功能时文件列表无法滚动或滚动不畅的问题。 2. 修正了开启了快速输入功能后,利用收藏、搜索功能跳转至其他记录时或者减少以及清空当前记录列表中的记录时会导致...
  • 1. 修正了某些HTC手机上出现的使用‘导出和导入’功能时文件列表无法滚动或滚动不畅的问题。 2. 修正了开启了快速输入功能后,利用收藏、搜索功能跳转至其他记录时或者减少以及清空当前记录列表中的记录时会导致...
  • vc++ 应用源码包_1

    热门讨论 2012-09-15 14:22:12
    利用VC编程界面实现3D文字 MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 ...
  • vc++ 应用源码包_2

    热门讨论 2012-09-15 14:27:40
    利用VC编程界面实现3D文字 MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 ...
  • vc++ 应用源码包_6

    热门讨论 2012-09-15 14:59:46
    利用VC编程界面实现3D文字 MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC...
  • vc++ 应用源码包_5

    热门讨论 2012-09-15 14:45:16
    利用VC编程界面实现3D文字 MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC...
  • vc++ 应用源码包_4

    热门讨论 2012-09-15 14:38:35
    利用VC编程界面实现3D文字 MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 ...
  • vc++ 应用源码包_3

    热门讨论 2012-09-15 14:33:15
    利用VC编程界面实现3D文字 MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 ...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    7:IE工具栏上加按钮,可以直接拖动连接到按钮上下载. 8:注册采用激活方式. 9:采用Messenger的弹出滑动消息提示框. 10:下载管理,虚拟文件夹. 11:自动ping. 12:连接到搜索引擎. 13:自动报告bug,建议等. 14:宏功能. 15...
  • APKTool批处理版l

    2011-10-26 13:58:55
    (一)一些软件中界面没有使用文字,而是调用的图片(这游戏软件中更多见),对于此类界面的汉化,请参考替换图标,直接用同尺寸的图片替换就可以了。 (二)有的软件本身支持多语种,这样可能会res文件夹下会...
  • 不用担心,markdown编辑器的左侧,括号里面的红色文字显示的就是你的文档标识。 采集功能 看到一篇很好的文章,但是文章里面有代码段、有图片,手工复制过来,格式全乱了,所以,相信采集功能,会是你需要的。...
  • 如:购买手机时,可选择 ¥50元获得锂电1块、¥10元送礼品包装 【10】商品必选项◆下单时必须选择的选项,如:颜色、尺码、规格等,同时可设置子库存 如眼影膏颜色:红色|库存7件、绿色|库存8件、蓝色|库存...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

手机怎么在图片上加文字