Skip to content

Commit 32be4e1

Browse files
committed
Add Part 1.C# Game scripting refesher
Common notes on a regular C++ turn C# programmer
1 parent 91ae033 commit 32be4e1

File tree

47 files changed

+249
-288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+249
-288
lines changed

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/1.about polymorphism.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/1.about polymorphism/1.about polymorphism.unity.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+

2+
//关于C#多态性的熟悉,文件MyCharacter.cs
3+
4+
using UnityEngine;
5+
using System.Collections;
6+
7+
//角色类
8+
public class MyCharacter
9+
{
10+
//定义一下角色的属性
11+
public string CharName = "";
12+
public int Health = 100;
13+
public int Strength = 100;
14+
public float Speed = 10.0f;
15+
public bool isAwake = true;
16+
17+
//提供给玩家在进入谈话时的问候虚函数
18+
public virtual void SayGreeting()
19+
{
20+
Debug.Log ("Hello, my friend");
21+
}
22+
}
23+
24+
//派生类“男人”ManCharacter
25+
public class ManCharacter: MyCharacter
26+
{
27+
//重载SayGreeting()函数
28+
public override void SayGreeting()
29+
{
30+
Debug.Log ("Hello, I'm a man");
31+
}
32+
}
33+
34+
//派生类“女人”WomanCharacter
35+
public class WomanCharacter: MyCharacter
36+
{
37+
//重载SayGreeting()函数
38+
public override void SayGreeting()
39+
{
40+
Debug.Log ("Hello, I'm a woman");
41+
}
42+
}
43+
44+
//派生类“兽人”OrcCharacter
45+
public class OrcCharacter: MyCharacter
46+
{
47+
//重载SayGreeting()函数
48+
public override void SayGreeting()
49+
{
50+
Debug.Log ("Hello, I'm an Orc");
51+
}
52+
}

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/1.about polymorphism/MyCharacter.cs.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
//关于C#多态性的熟悉,文件Tavern.cs
2+
3+
using UnityEngine;
4+
using System.Collections;
5+
6+
//酒馆类
7+
public class Tavern : MonoBehaviour
8+
{
9+
//定义一个酒馆的NPC数组
10+
public MyCharacter[] Characters = null;
11+
12+
//-----------------------------------------【Start()函数】---------------------------------------------
13+
// 说明:此函数仅在Update函数第一次被调用前被调用,常用于进行数据的初始化
14+
//--------------------------------------------------------------------------------------------------------
15+
void Start () {
16+
17+
//初始化,设定酒馆的NPC数组大小
18+
Characters = new MyCharacter[5];
19+
//进一步初始化酒馆的NPC数组,用不同类型的人物类填充该数组
20+
Characters[0] = new ManCharacter();
21+
Characters[1] = new WomanCharacter();
22+
Characters[2] = new OrcCharacter();
23+
Characters[3] = new ManCharacter();
24+
Characters[4] = new WomanCharacter();
25+
26+
//调用EnterTavern()函数
27+
EnterTavern();
28+
}
29+
30+
//-------------------------------------【EnterTavern()函数】-----------------------------------------
31+
// 说明:自定义的进入酒馆函数EnterTavern()
32+
//--------------------------------------------------------------------------------------------------------
33+
public void EnterTavern()
34+
{
35+
//进入酒馆后,每人都会相互问候
36+
foreach(MyCharacter C in Characters)
37+
{
38+
//此处会调用派生类中的SayGreeting函数,多态性(Polymorphism)使得派生类可以通过基类进行访问
39+
C.SayGreeting();
40+
}
41+
}
42+
//-------------------------------------------------------
43+
}

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/1.about polymorphism/Tavern.cs.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/2.about properties.meta

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/2.about properties/2.about properties.unity.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
//关于C#中properties属性的熟悉
2+
3+
using UnityEngine;
4+
using System.Collections;
5+
6+
7+
//Database类-演示Get、Set方法
8+
public class Database : MonoBehaviour
9+
{
10+
11+
//-------------------------------------------【Set( )&Get( )】-----------------------------------------
12+
// iMyNumber变量的Public属性接口
13+
//--------------------------------------------------------------------------------------------------------
14+
public int MyNumber
15+
{
16+
//Get方法,当需要获取iMyNumber的值时调用
17+
get
18+
{
19+
return iMyNumber; //返回iMyNumber的值
20+
}
21+
22+
//Set方法,当为iMyNumber赋值时被调用
23+
set
24+
{
25+
//当值位于1到10之间时用Set的值改变当前数值,否则忽略
26+
if(value >= 1 && value <= 10)
27+
{
28+
//更新私有变量
29+
iMyNumber = value;
30+
31+
//调用NumberChanged( )函数
32+
NumberChanged();
33+
}
34+
}
35+
}
36+
37+
//定义私有的int变量iMyNumber
38+
private int iMyNumber = 0;
39+
40+
//-----------------------------------------【Start()函数】---------------------------------------------
41+
// 说明:此函数仅在Update函数第一次被调用前被调用,常用于进行数据的初始化
42+
//--------------------------------------------------------------------------------------------------------
43+
void Start ()
44+
{
45+
//设置MyNumber
46+
MyNumber = 11; //大于10,Set无效
47+
48+
//再次设置MyNumber
49+
MyNumber = 7; //位于1到10之间,Set成功
50+
}
51+
52+
//----------------------------------【NumberChanged()函数】--------------------------------------
53+
// 事件:iMyNumber值变化时调用此函数
54+
//--------------------------------------------------------------------------------------------------------
55+
void NumberChanged()
56+
{
57+
//输出iMyNumber值的变化
58+
Debug.Log("Variable iMyNumber changed to : " + iMyNumber.ToString());
59+
}
60+
61+
}
62+

Mastering Unity Scripting/Assets/Part 1.C# Game scripting refesher/2.about properties/Database.cs.meta

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Binary file not shown.
Binary file not shown.
Binary file not shown.

Mastering Unity Scripting/Library/UnityAssemblies/Mono.Cecil.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Mastering Unity Scripting/Library/UnityAssemblies/UnityEditor.iOS.Extensions.Xcode.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)