Unity X C#小记之使用List与string的搭配
2017-09-15 14:56
375 查看
楔子
由于个人对电子游戏抱有好感,于是就欣然掉坑里面去了。但作为从未接触过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");
引用 Lea
4000
rning 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
UnityEngine.Debug:Log(Object)
The pony's name at index 0 is Princess Cadence
UnityEngine.Debug:Log(Object)
那就算ok的了,毕竟你要printfDebug出来的Log就应该是这个样子的。
唯三吐槽的就应该是句号和公主,还有口水话太多【xx】
相关文章推荐
- C#开发里List控件的使用方法介绍
- C#中使用List类
- C# String.Format 的使用[转]
- c# SortedList的使用
- C#2.0中 GridView日期列使用DataFormatString="{0:d}"
- C#中链表的用使用LinkedList
- C#中ref out,关键是string的使用事宜zzpart
- AjaxControltoolkit学习笔记—PagingBulletedList使用详解 (asp.net C#)
- C#中string[]数组和list<string>泛型的相互转换
- C# 使用List泛型读取和保存文本文件
- NET C# List泛型集合 使用方法
- C# 使用List泛型读取和保存文本文件
- C#中string[]数组和list<string>泛型的相互转换
- C# String.Format 的使用
- 使用C#拷贝String到struct
- NET C# List泛型集合 使用方法
- C#中ListView和ImageList配合使用
- C#中string[]数组和list泛型的相互转换
- c#2.0 List 使用
- 在C#中如何使用BYTE[]转换为String