自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

转载 Unity个人优化总结

一、程序方面   01、务必删除脚本中为空或不需要的默认方法;   02、只在一个脚本中使用OnGUI方法;   03、避免在OnGUI中对变量、方法进行更新、赋值,输出变量建议在Update内;   04、同一脚本中频繁使用的变量建议声明其为全局变量,脚本之间频繁调用的变量或方法建议声明为全局静态变量或方法;   05、不要去频繁获取组件,将其声明为全局变

2017-12-05 14:07:11 665

原创 数学中的各类曲线函数

最近偶然看到一款非常有意思的东西,很全面。里面有全部的Math的曲线函数。函数的小游戏地址在这个界面右上角,可以选择函数。然后随便点点、小球就会按照曲线函数移动过去。并且坐标轴上也会显示出该曲线函数

2017-07-12 14:43:34 20140 1

原创 我发现了一个贼屌的大神的博客。这个帖子只为存储他的博客地址

大神的博客链接

2017-07-06 14:51:52 8963 3

转载 Unity UGUI事件系统

Unity3D的uGUI系统的将UI可能触发的事件分为12个类型,即EventTriggerType枚举的12个值。如下图所示:    先以PointerClick为例。这个是用于某点点击事件。其他事件都可以根据相同的办法调用。    之所以使用PointerClick为例。是因为在最后笔者会提到一个特殊的实现方式。而相比于其他事件类型,有且仅有Click事件存在特殊实现。

2017-07-03 18:02:41 911

转载 Unity 纹理格式

[Desktop]RGB Compressed DXT1压缩的RGB纹理。这是最常见的漫反射纹理格式。4位/像素(32 KB 256x256)RGBA Compressed DXT5压缩的RGBA纹理。这是漫反射和高光控制纹理的主要格式。1 字节/像素(64 KB 256x256)RGB 16 bit65万颜色

2017-07-03 15:01:05 1252

转载 Unity游戏开发使用Assetbundle加载场景实战

之前有一篇文章中我们相惜讨论了Assetbundle的原理,如果对原理还不太了解的朋友可以看这一篇文章:Unity游戏开发使用Assetbundle加载场景的原理 本篇文章我们将说说assetbundle是如何实现的。1.创建Assetbundle         无论是模型资源还是UI资源,最好是先把他们放在Prefab中,然后在做成Assetbundle。我们以模型来举例,

2017-06-30 16:52:27 1759

原创 关于Invoke的使用

在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用,两者的区别就是一个导致工作线程等待,而另外一个则不会。

2017-06-30 16:49:04 680

转载 Unity关于Sprite Packer的用法

之前有人留言说想我介绍一下sprite packer的用法。那么我也顺便的介绍一下吧。我们用来做sprite 的图片,通常会留有很多空白的地方,我们在画完了sprite之后,这些地方很可能就没有什么作用了。如果想避免这些资源上的浪费,我们可以把各个sprite做成图集,把图片上的空间尽量利用得充实一点。这时候,我们就需要一个制作图集的工具。其实这个功能要自己写也不难的,只是把各个s

2017-06-30 15:11:18 5120

原创 Unity比较两个向量的长度

向量的长度是用勾股定理计算出来,计算机计算两次方和开根的运算量比加减法要费时的多。所以如果是想比较两个向量的长度,用sqrMagnitude可以快出很多。using UnityEngine;using System.Collections;public class example : MonoBehaviour { public Transform other; public float

2017-06-30 14:06:52 2829

原创 Unity写代码日常(六)

最近注意到了一个事情,有些时候,我们可能需要判断一些不一定等于0.但是又要接近0的情况。就比如,我们做一个人物移动,2D情况下。目的地有个墙,我们移动过去。移动的距离即使特小也是有距离的,可能在贴近目的地的时候,发生某些我们不想要的问题。这个时候,就需要一些判断。我通常会用float.Epsilon做一个判断,如果while(当前到end点的距离 > float.Epsilon){

2017-06-30 13:57:00 2005 1

转载 Unity场景问题,以及老程序DontDestory问题

Unity 5.3中新增加了多场景编辑功能,允许用户将一个大场景以某种逻辑分割成多个小场景并方便的编辑和管理。这在某些情况下会比较有用,是对Unity编辑器对场景编辑能力的一个重要提升。本文将由Unity官方工程师张为,为大家介绍一些多场景编辑的基本功能以及一些实例。什么是多场景编辑多场景编辑就是允许用户在Unity编辑器中同时打开多个场景,并对它们进行编辑。Unity提供了一系列的UI和

2017-06-30 11:19:00 2557

原创 关于认证Steamworks注意事项。

因为现在steam已经把绿光去掉了。换成了steam Dirct。所以规则变了一些。具体的详细流程我就不写了,记不住。因为我已经注册过了。除非再申请一个账号,再走一次流程。最主要的是发一下注意事项。1.认证steamworks的时候,填写你的个人信息,记住一定是全英文拼写。比如叫尘心。那么就是CHENXIN。而且一定要一致,和收款的那个银行信息一致。2.因为我走的人个人开发者。没有填公司。

2017-06-26 14:49:41 13040 4

原创 C# 结构体类型和类类型

当我们需要定义一些需要定义一些类型的时候,需要用到一些字段和属性的集合,有人会用类类型。也有人会用结构体类型。           结构和类的区别:  1、结构是值类型,它在栈中分配空间;而类是引用类型,它在堆中分配空间,栈中保存的只是引用。  2、结构类型直接存储成员数据,让其他类的数据位于对中,位于栈中的变量保存的是指向堆中数据对象的引用。  C#中的简单类型,如int、d

2017-06-19 13:45:47 1287

转载 TCP和UDP

TCP UDPTCP与UDP基本区别  1.基于连接与无连接  2.TCP要求系统资源较多,UDP较少;   3.UDP程序结构较简单   4.流模式(TCP)与数据报模式(UDP);   5.TCP保证数据正确性,UDP可能丢包   6.TCP保证数据顺序,UDP不保证   UDP应用场景:  1.面向数据报方式  2.网络数据大多为短消息   3

2017-06-19 11:28:10 615

原创 数组与指针的区别

数组要么在静态存储区被创建(如全局数组),要么在栈上被创建。指针可以随时指向任意类型的内存块。(1)修改内容上的差别char a[] = “hello”;a[0] = ‘X’;char *p = “world”; // 注意p 指向常量字符串p[0] = ‘X’; // 编译器不能发现该错误,运行时错误(2) 用运算符sizeof 可以计算出数组的容

2017-06-17 11:15:51 452

原创 内存存储以及分配方式的区别问题

内存分配方式及其区别1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或

2017-06-17 11:11:39 764

转载 List和ArrayList和区别。这是我见过最清晰地解释

原文链接在ArrayList中,我们不仅插入了字符串"abc",而且又插入了数字123。这样在ArrayList中插入不同类型的数据是允许的。因为ArrayList会把所有插入其中的数据都当作为object类型来处理。这样,在我们使用ArrayList中的数据来处理问题的时候,很可能会报类型不匹配的错误,也就是说ArrayList不是类型安全的。既使我们保证在插入数据的时候都很小心,都有插入了

2017-06-16 10:54:51 2175

原创 Unity之关于代码--数据结构

1、如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector2、如果你需要大量的插入和删除,而不关心随即存取,则应使用list3、如果你需要随即存取,而且关心两端数据的插入和删除,则应使用deque。4、如果你要存储一个数据字典,并要求方便地根据key找value,那么map是较好的选择5、如果你要查找一个元素是否在某集合内存中,则使用set存储这个集合比较好

2017-06-14 16:16:58 693

转载 Unity 游戏存档 PlayerPrefs类的用法

unity3d提供了一个用于本地持久化保存与读取的类——PlayerPrefs。工作原理非常简单,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值。    PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。    分别对应的函数为:    SetInt();保存整型数据;    GetInt();读取整形数据; 

2017-04-14 15:15:32 2812

原创 Unity之讲Texture图片转换成Sprite格式

由于Image和Button的图片要求是Sprite类型的,当有大量图片时,一个一个的操作不方便,所以考虑动态的将jpg或png图片进行转换格式。Sprite sprite = Sprite.Create(tex, new Rect(0, 0, 0,0), Vector2.zero);其中tex是Texture图片。但是这种转换方式很消耗资源,多了的话非常卡。

2017-03-13 14:09:02 9113

原创 关于Steam上功能面板引起的程序崩溃问题

Steam 功能面板广泛应用在数千款游戏中,通过了非常严格和完整的测试,因此很少引起应用程序崩溃。不过它将进程注入游戏的方式经常在 d3d 中引起内存泄漏或内存崩溃问题,但一般不影响游戏运行。要诊断功能面板崩溃情况,请尝试使用 d3d 调试运行时工具(debug runtime)找出 d3d 出错的成因,调试时开启所有溢出级别(信息/警告/错误/注意)。这也许可以找出孤立 d3d 资源。如

2017-02-18 16:06:57 2115

原创 Unity打包IOS时。自动化配置文件。

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;using UnityEditor.iOS.Xcode;using UnityEditor.Callbacks;using System.IO;public class SSIOSBuildSet

2017-02-13 17:55:32 2507 2

原创 Unity之打包IOS。本地化应用名字。自动切换。国际化

步骤1:添加语言步骤2:为info.plist添加一个key。如下图所示步骤3:写在如下图所示的文件内,并且为中英文都写上应用名字。步骤4:最后选上本项目

2017-02-13 17:43:24 3894

原创 Unity写代码日常(五)

http://kvazars.com/littera/这个网址是像素字体网址。有些时候像素字体好看些。用这个导出像素字体。然后在Unity里面用插件这样之后就可以了。

2016-12-05 14:01:16 712

转载 C# Regex类用法

一、C#正则表达式符号模式 字  符描  述\转义字符,将一个具有特殊功能的字符转义为一个普通字符,或反过来^匹配输入字符串的开始位置$匹配输入字符串的结束位置*匹配前面的零次或多次的子表达式+匹配前

2016-10-21 17:45:22 21190

原创 Unity中InputFiled问题

public class test : MonoBehaviour { void Start () { var input = gameObject.GetComponentInputField>(); var se= new InputField.SubmitEvent(); se.AddListener(SubmitName);

2016-10-20 14:52:08 1830

原创 Unity代码日常(四)

do{    if(           break;      )    if(           break;      )    if(           break;      )}while(false)上面的东西。代表N——1的关系。放在接口里只有一个出口。通常服务器这样写。如果写成 if(return;) if(

2016-10-15 16:54:27 485

原创 unity编码日常(三)优化问题

今天先写一个优化问题。就是写代码的时候一定要注意Update和协程的使用。尽量少写Update。也尽量少写协程。写在一个同一个Update里。如果不是必须。那么就写一个稍微间隔时间长一点的协程。还有加载资源的方法尽量在一个脚本里。尽量用List去存东西。不要用ArrList。

2016-10-13 18:04:43 567

原创 Unity日常(二)

if (m_bool)如果是true的情况就不要加上== true了。因为这会多开一个内存。Transfrom m_want; 不要写 = null。直接在用的 Transfrom m_want = transfrom.find................等等。命名规范:变量要用m_waht。  如果定义的是一个List。那么就是m_whatList.  同理,定义的是一个Di

2016-10-13 17:57:38 456

原创 尝试做了ShareSDK For Unity 分享内容

Android分享。先是下载ShareSDK官方的SDK。里面自带Demo。将这个东西挪到自己项目下。然后自己建分享按钮。需要注意的是分享后跳出第三方软件的一系列事件。比如回调什么的。官方demo和文档里标注了各个事件。然后自己建的这个脚本注意点击的时候才进行初始化。这个包名要和AndroidManifest里的包名一致修改ShareSDKU

2016-10-13 17:51:15 632

原创 unity 编写代码日常(一)

重复运用的值,变量一定要定义一个变量。条件编译。-----用于平台编译。数组一般只用于数字。有固定长度的。一般用List。存储。

2016-09-20 21:13:07 680

原创 unity Bezier曲线 移动

private Dictionary m_BezierTask = new Dictionary();    private bool m_bProcess = true;    public void ClearAllTask()    {        m_BezierTask.Clear();    }    void Update()    {

2016-09-20 21:10:31 941

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除