20241人加入学习
(121人评价)
Unity初级案例 - 贪吃蛇(Unity2017.2.0)

制作于2017.12.16

价格 免费

1.在file的buildsetting里面的playersetting里面的resolution and presentation里面的fullscreemMode可以调是什么分辨率或者是不是全屏
2.Display Resolution Dialog可以调是否弹出游戏双击以后的那个调分辨率的白色框框
3.Canvas里面的UI可以用stretch设置锚点,默认是锚点对齐Canvas物体不动,按住Alt键变成锚点对齐Canvas物体跟随吸附
4.Image组件里面的Color有RGBA四种可选,其中A可以调节Image的透明度
5.锚点,就是在Canvas中四个方向的锚点对应矩形的四个顶点,在变换时,锚点与其对应顶点的距离始终不变
6.图片SetNativeSize,就是让图片的像素完美化,适应化
7.组件outline,可以给图片加一个边框
8.组件Shadow,可以给图片加一个阴影效果
9.在Transform组件中的数值设置格子可以直接输入算式,比如-100+25+10,会直接得出结果
10.在Canvas中,Canvas子对象的绘画顺序遵循在面板中的上下顺序,也就是谁在上面谁先画
11.选中名字之后按F2可以直接重命名
12.在Canvas坐标系下的移动要用localPosition进行本地移动,如果用Position的话就会变成在世界坐标系上移动
13.Invoke延时多少秒后执行方法,InvokeRepeating延时多少秒后执行方法并在多少秒后重复执行
14.gameObject.transform.SetParent(gameObject.transform, true or false);    第一个参数是父物体的transform第二个参数是是否转换成世界坐标
15.在UI的Canvas坐标系下,gameObject.transform其实是该对象的RectTransform,所以当不是使用gameObject.transform的时候用于
    记录的应该是RectTransform(存在疑问)
16.在public数组下,可以全选拖拽添加不限长度,或者在代码中优先取一个可更改的长度
17.在使用List的时候有一个Last方法可以直接获取表尾元素,但是要using System.Linq
18.ColorUtility.TryParseHtmlString("16进制颜色", out Color color) 该方法是解析一个16进制的颜色数传送到后面的color类型的值中
19.Time.timeScale是游戏时间缩放项,通过设置timeScale的倍数可以调节游戏的时间进行程度,调成0可以暂停游戏1就是一倍速,以此类推
20.画面焦点,就是在游戏进行中,如果你的鼠标点到过某些按钮,你会发现你可以用空格或者回车同样可以调节那个按钮,这是我们不希望看到的
    那么,我们应该在Edit里面的ProjectSetting里面的Input里面找到会相应空格和Enter的按键,把他删掉就可以屏蔽焦点按钮的空格或者Enter响应
    具体到底是什么设置还不是很懂,请百度
21.协程。需要using System.Collections;。它是一种创建伪线程的方法,即可以模拟多线程,在一帧内做更多的事,同时也可以作为某些物体的逐渐消失
    且不用写到Update里面。协程其实是一种特殊的函数返回类型,这种返回类型的函数中可以使用yeild return 关键字实现各种各样的逐帧操作。
    yield return表:
    yield return null; // 下一帧再执行后续代码
    yield return 0; //下一帧再执行后续代码
    yield return 6;//(任意数字) 下一帧再执行后续代码
    yield break; //直接结束该协程的后续操作
    yield return asyncOperation;//等异步操作结束后再执行后续代码
    yield return StartCoroution(/*某个协程*/);//等待某个协程执行完毕后再执行后续代码
    yield return WWW();//等待WWW操作完成后再执行后续代码
    yield return new WaitForEndOfFrame();//等待帧结束,等待直到所有的摄像机和GUI被渲染完成后,在该帧显示在屏幕之前执行
    yield return new WaitForSeconds(0.3f);//等待0.3秒,一段指定的时间延迟之后继续执行,在所有的Update函数完成调用的那一帧之后(这里的时间会受到Time.timeScale的影响)
    yield return new WaitForSecondsRealtime(0.3f);//等待0.3秒,一段指定的时间延迟之后继续执行,在所有的Update函数完成调用的那一帧之后(这里的时间不受到Time.timeScale的影响)
    yield return WaitForFixedUpdate();//等待下一次FixedUpdate开始时再执行后续代码
    yield return new WaitUntil()//将协同执行直到 当输入的参数(或者委托)为true的时候....如:yield return new WaitUntil(() => frame >= 10);
    yield return new WaitWhile()//将协同执行直到 当输入的参数(或者委托)为false的时候.... 如:yield return new WaitWhile(() => frame < 10);
    调用协程的方法有两种,分别是StartCoroutine(/这里直接调用方法,添加参数/),另一种是StartCoroutine(/这里填写”字符串的方法名字”,方法参数/)。
    第一种方法的优势在于可以调用多个参数的方法,后一种方法只能调用不含参数或只包含一个参数的协程方法。
    但是第一种方法不能通过StopCoroutine(/这里填写”字符串的方法名”/)来结束协程,只能通过StopAllCoroutines来结束。
    后一种则可以通过StopCoroutine来结束对正在执行的协程的调用。
22.简单存储方法,PlayerPrefs类,可以调用三种类型的简单存储int,float和string。检索方法是字符串匹配参数一是名字字符串,参数二是值
    该类的存储方式是注册表,键值对,具体的PlayerPrefs类方法请百度,这里不写了
23.Resources动态加载。首先在Assets文件下的任何一个地方创建一个叫Resources的文件夹,Unity提供了相应的类去访问加载该文件夹下的数据
    具体Resources方法请百度,这里不写了
24.foreach循环的unity用法。foreach循环如果循环transform的话可以循环指定父物体的子物体。
25.某个组件的enabled可以设置该组件是否起作用,true起作用,false禁用

//单词
ControlPanel    控制面板
Reward         奖励

//小技巧
1.当使用public数组拖拽的时候,把初始对象置空,可以方便debug。比如sprite组,一开始的对象sprite就是空的不放东西
2.C#快速添加属性Ctrl+R+E

[展开全文]

授课教师

SiKi学院讲师

课程特色

图文(1)
视频(23)
下载资料(1)