随笔

来源:互联网 发布:audition cc 2018 mac 编辑:程序博客网 时间:2024/06/06 03:06

原本是一个月写两篇来记录下的(出了点意外。。。),这次我将最近get到的一些技能点(也不算是知识点,只是自己的感受)大概做些简单总结和梳理(反正是给自己看的<_<,为了以后的我看到自己写的就知道自己进步了没~~)
里面的代码有些是我以前做的东西里面的,有些是伪代码。

变量

1、变量能private的都private

    private Sprite[] left_images_Sprites;   //左边的sprite    private Sprite[] right_images_Sprites;  //右边的sprite    private int[] randomInt;    private Vector3 pos;  //parent的相对位置    private List<Vector3> posList; //对应每个复制体的位置

2、需要控制的scene里的物体,可以先public,然后考虑再private
(主要是方便以后改,不然每次改下都要到scene里去拖,如果多了,就有点烦了)

    private GameObject main;   //主界面    public Button button;  //退出按钮    public GameObject perfab;      public Transform parent;  //复制体的父物体

3、变量的初始化,一般就放在awake里面,当然有些也不一定

void Awake()    {          randomInt=new int[]{-1,1};        main = GameObject.Find("Main");        pos=parent.position;        posList=new List<vector3>();          ......    }

4、在有些脚本里的变量需要其他脚本知道,一般就是把他给弄成public static或者public,这个如果是单例public可以了,如果不是
的话public的变量一般就需要通过gameobject上的脚本来获取。

    public  static int leftCount, rightCount;  //分别得到左右图片组的数量
xxx.GetComponent<xx>().x

5、如果某些值需要反复使用,就把这个值放在一个变量里(好处就是这个值变了只需要改变变量的值就可以了)

函数

1、把实现某个功能的一些语句放在函数里,如果函数很长的话也最好能把他拆分下。

void Update(){  想象一下一堆逻辑代码。。。}
//把对应逻辑放在对应函数里,看起来感觉清爽得多,也方便修改logic1();logic2();logic3();

2、像ref,out这些关键字的使用

string getString(){...... return xxx;}//在这里我不仅要得到string,我还想同时得到其他有关值,比如string的某个字符的下标int index=getXIndex(); //这样也可以,只不过又调用了一个函数//可以改成这样int index;getString(out index);  //这样就只调用了getString(),就不需要getXIndex了

协程

协程是个好东西,但没用好就完了。
1、常用的,比如倒计时,yield等待一秒
2、用协程来加载资源,这里要提的是,不要用协程加载那些点击就出来的资源(如果资源很小但无所谓,稍微大点就有问题了)

资源加载

在unity里有些特殊的文件夹(记不起来了,就查下文档),就比如这个StreamingAssets,(考虑文件不是特别多的情况)主要是由于资源不是一成不变的,有了这个文件夹就可以随时更换内容
1、将文件名和对应的绝对路径存在变量里

string path=Application.StreamingAssetsPath+"/"; //Application.StramingAssetsPath就是StreamingAssets的绝对路径public Dictionary<string,string> xxx=new Dictionary<x,y>();//文件名就是key,绝对路径就是value

2、将文件名和对应的内容(以流或其他形式)存在变量里

public Dictionary<string,byte[]> name =new Dictionary<string,byte[]>(); //当然也可以static,视情况而定了public static Dictionary<string,xxx> name=new Dictionary<string,xxx>();  //xxx就是其他形式,比如Gameobject,sprite......等等

XML

在资源加载中,文件名就是从xml文档中得来,然后就可以写个专门的脚本用来负责读取xml文档,用单例模式

using xxxx......public class xxxXml:xxx{public static xxxXml instance;void Awake(){instance=this;}public xxx getXXX(){}......}

Summary

1、Unity很多时候的代码都是在写脚本,前期就不要考虑太多,先把功能写出来,然后再优化,不要心怀一写出来就是不用改的,这个就像画画一样,也是先把轮廓给勾勒出来。
2、脚本里尽量都用函数,不要在函数外出现语句。
3、脚本里出现很多变量也是个头大的问题。
4、关于源码,以前以为我要读懂它的每一行意思,现在想想都觉得不咋现实(这技术得继续修炼##,反正阅读源码不要太过纠结,总是有目的的,所以才会去看)

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 缎面的鞋脏了怎么办 夏天脸上长粉刺怎么办 鬃狮不吃东西怎么办 买二手车的车牌怎么办 榴莲打开了肉没熟怎么办 gmat的prep做完怎么办 电脑没ip地址怎么办 电脑ip地址缺失怎么办 cos还原不了人物怎么办 执行局抓人十五天不放人怎么办 笔记本电脑键盘按键错乱怎么办 靠墙倒立上不去怎么办 医院多收钱了怎么办 学生总是转笔怎么办 吃错东西呕吐怎么办 手腕筋扭伤了怎么办 右膝盖内侧疼痛怎么办 膝盖关节腔积液怎么办 小孩玩游戏花钱怎么办 初三玩手机上瘾怎么办 无线网有感叹号怎么办 台式电脑网络感叹号怎么办 忘记发红包密码怎么办 电信诈骗被骗后怎么办 C小孩讨厌上学怎么办 军训来大姨妈怎么办 夏天军训来月经怎么办 军训遇到大姨妈怎么办 长春市图书馆读者证怎么办 济宁图书馆怎么办读者卡 海南省图书馆读者证怎么办 小孩子特别能吃怎么办 小孩吃不下去药怎么办 小孩不肯去上学怎么办 初中没有团员证怎么办 入团申请书丢了怎么办 刚成立单位社保怎么办 老年人耳鸣怎么办小妙招 老人血压高200怎么办 老人晕车后难受怎么办 老人头晕心里慌怎么办