由于个人对电子游戏抱有好感,于是就欣然掉坑里面去了。
但作为从未接触过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 myFavoritePonies = new List ();
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 myFavoritePonies = new List ();
引用 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
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 Listmemory, 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
好长啊不想看不想看不想看不想看
其实按照个人的理解是:
此条创造了一个空的List,
这个List的类型是
, 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】