Unity X C#小记之使用List与string的搭配
来源:互联网 发布:怎么域名备案 编辑:程序博客网 时间:2024/05/21 21:36
楔子
由于个人对电子游戏抱有好感,于是就欣然掉坑里面去了。
但作为从未接触过C#和Unity的新手来说,在写代码的时候还是有一定的困难的。
于是选择了一本比较基础的书来学习。
然而这本书似乎还没有翻译的版本,所以还是慢慢来吧( ´_ゝ`)
注意:个人是零基础学习C#和Unity,在下文可能会有不正确的地方,若有大神指正则是万幸。
教材:Learning C# by Developing Games with Unity 3D Beginner's Guide by Terry Norton
由于我是记录一些学起来比较蛋疼的东西,所以会显得比较凌乱,而且基础什么的根本就没有,于是就没什么架构可言。
所以一般来讲我会把涉及到且未展示过的部分写上去。
以后可能会整理的(大概(逃
小记
热身篇
基础中的基础。打开Unity,在Unity里的下方找到Project栏,在其内用鼠标右键可以看到Create(创建),之后可以看到C# Script。请用左键对它猛击!
爱整洁的处女座可以用同样的办法,先把Folder(文件夹)罗列好,再创建.cs也不迟。
若以前有创建过的C Sharp文件,则可直接打开。
代码篇
打开或创建后,请确认上方using的类型是否有囊括System.Collections.Generic和UnityEngine。即:
using System.Collections.Generic;using UnityEngine;
如果没有的话会造成无法使用List、Debug等功能。
其实我用的Unity 5.6.f1里面包括的MonoDevelop在新建的C# Script里会自己囊括,而且它的架构是这样的。
using System.Collections;using System.Collections.Generic;using UnityEngine;public class LearningScript : MonoBehaviour {void Start () // Use this for initialization{}void Update () // Update is called once per frame{}}
所以如果你的Unity版本比我高之类的,也许就不用担心这个问题了。
其中在我所用的教材里面,其第五章对类似于数组的List的应用是比较令人烦恼的(没系统学过布尔的我都觉得里面的bool很好学
而且参照了许多人的Blog,都觉得不知所云(其实是自己的脑子笨!
所以我还是用比较傻瓜的方式来学习。
在教材上,其枚举了My Little Pony的例子(小马大法好ww
using UnityEngine;using System.Collections.Generic;public class LearningScript : MonoBehaviour {void Start (){List<string> myFavoritePonies = new List<string> ();myFavoritePonies.Add ("Princess Cadence");myFavoritePonies.Add ("Fluttershy");myFavoritePonies.Add ("Nightmare Moon");Debug.Log ("This list has " + myFavoritePonies.Count + " poines.");Debug.Log ("The pony's name at index 1 is " + myFavoritePonies[1]);Debug.Log ("The pony's name at index 2 is " + myFavoritePonies[2]);Debug.Log ("The pony's name at index 0 is " + myFavoritePonies[0]);}}
引用 Learning C# by Developing Games with Unity 3D Beginner's Guide, Page 69,Terry Norton.
另外,关于 Princess Cadence 其实是原作者拼错了的,原来应该是 Princess Cadance。同样的东西我就不吐槽三遍了。
当时候码着这东西的时候感觉像数组,然而看完了之后根本就不是数组。例如:
List<string> myFavoritePonies = new List<string> ();
引用 Learning C# by Developing Games with Unity 3D Beginner's Guide, Page 69,Terry Norton.
学过C语言的童鞋们都知道数组需要定义数组中需要包含多少个实际的量,但在这里似乎没有desu。
引用教材的原句就是:
This statement creates an empty List object.
First thing to notice is that List<string> specifies that you are creating a List
of type string.The name of the List is myFavoritePonies.
Everything on the left side of the assignment operator (=) is creating a variable,
declaring the type and the name.Everything on the right side is just like assigning a value to a variable, therefore
new List<string() is a method called to create a new List object in computer
memory, and give that memory location the name of myFavoritePonies.
引用 Learning C# by Developing Games with Unity 3D Beginner's Guide,Page 70,Terry Norton.
这里最后一段引用List<string()的错误是原作者的问题→_→
好长啊不想看不想看不想看不想看
其实按照个人的理解是:
此条创造了一个空的List,
这个List的类型是<string>,
List之名即为myFavoritePoines。
于是可以解释成:等号左边是列入“被创造的变量”,说明了其
真名与类型。(此处的List我用英语动词来理解)new则是为了创造新的对象,所以等号右边可以解释成创造出“需要写入List的内容” 。
合起来就像是PPAP
而下方的代码
myFavoritePonies.Add ("Princess Cadence");myFavoritePonies.Add ("Fluttershy");myFavoritePonies.Add ("Nightmare Moon");
引用 Learning C# by Developing Games with Unity 3D Beginner's Guide, Page 69,Terry Norton.
则是使用 Add 分别添加三个小马到 myFavoritePonies 这个 List 里面去了。
这个过程是有顺序的。
Princess Cadance是第0个,
Fluttershy是第1个,以此类推。
Debug.Log ("This list has " + myFavoritePonies.Count + " poines.");Debug.Log ("The pony's name at index 1 is " + myFavoritePonies[1]);Debug.Log ("The pony's name at index 2 is " + myFavoritePonies[2]);Debug.Log ("The pony's name at index 0 is " + myFavoritePonies[0]);
引用 Learning C# by Developing Games with Unity 3D Beginner's Guide, Page 69,Terry Norton.
Debug.Log会在Unity的Console里显示文字。
以前用惯C语言直接用printf的pong友请你停一下靴靴
只要用半角双引号将所要说的内容装入到里面去就好了。想要引入某个东西的话,按照“+ ‘变量’”的语法加入就好了。
其中的Count是指数(shǔ)数(shù),可以数出myFavoritePonies这个List当中到底有多少条内容。
而myFavoritePonies[0]则是myFavoritePonies这个List中的第0个内容。
测试篇
从MonoDevelop中保存文件后,回到Unity。
将刚刚写好的文件指定(拖动)到某个物体上(Camera也行)后,
将Project栏换成Console栏,就可以按上面的播放按钮了。
结果,在Console栏会显示出
This list has 3 poines.
UnityEngine.Debug:Log(Object)The pony's name at index 1 is Fluttershy
UnityEngine.Debug:Log(Object)The pony's name at index 2 is Nightmare Moon
The pony's name at index 0 is Princess Cadence
UnityEngine.Debug:Log(Object)
UnityEngine.Debug:Log(Object)
那就算ok的了,毕竟你要printfDebug出来的Log就应该是这个样子的。
唯三吐槽的就应该是句号和公主,还有口水话太多【xx】
- Unity X C#小记之使用List与string的搭配
- Unity X C#小记之Array/List/Dictionary的杂七杂八
- Unity X C#小记之引用其他C#文件
- Unity X C#小记之控制Object(物体)的Rotate(转动)
- C#基础知识之List的使用
- WinSCP和PuTTY的搭配与使用
- RadioGroup与RadioButton的搭配使用
- 初学 retrofit2与RXJava 的搭配使用
- boost::bind与find_if的搭配使用
- TypeScript的使用(与Angular2搭配)
- ContentProvider与sqlit的搭配使用
- C#开发Unity游戏教程之Scene视图与脚本的使用
- C#中Array,List和ArrayList间的转换,ArrayList 与 string、string[] 的转换
- C# List的使用
- 【.Net码农】C# List<string>与String字符串相互转换
- C# string类型特性小记
- Dictionary<string, List<string>> 的使用
- Unity的button脚本及MaterialPropertyBlock使用、C#数组转list
- 第三周 项目1
- 【安全牛学习笔记】收集敏感数据、隐藏痕迹
- layer mobile 点击按钮取消 自动关闭 解决方法
- 安卓开发-sdk目录细节详解
- 2018年金山WPSweb前端开发试题
- Unity X C#小记之使用List与string的搭配
- 学完这9个课程,你将达到高级黑客水平
- (转载)java基础回顾
- Python学习day07 文件管理、mysql-python及常用模块
- 机器学习之正则化图文讲解
- python装饰器2
- 优化Mysql数据库的8个方法
- 学习
- 市电、三相交流电知识