基础篇4 类的表达和文件引用

  • 什么是类 -> 相关文档
  • b站视频40 -41
  • 如何使用

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class MainPlayer : MonoBehaviour
{
/*
public string myname = "弼马温";
public int HelthValue;
public char grade = 'B';*/

public Cat cat;//用自定义类Cat 来定义一个 cat
// Start is called before the first frame update
void Start()
{
//创建对象,并初始化对象在空间中,并赋值
cat = new Cat();
cat.catname = "猪猪"; //cat.后面要带在类里定义的名 如,catname 和 age
cat.age = 1;
//打印猫信息
cat.print(); //想要输出自己在类自定义的输出,直接在用类定义的 cat.后 写 print() and perr()
cat.perr(); //print 和perr 都是在类里定义的功能。

}
}

[Serializable] //这个英文的意思是“序列化”,可以使自定义类显示在unity上。
public class Cat
{
public string catname;
public int age;

//打印
public void print()
{
Debug.Log($"这只小猫名叫:{catname}, 它今年{age}岁了");
}
//猫叫
public void perr()
{
Debug.Log($"小猫{catname}不停的在叫。。");
}
}
  • 类的创建顺序
    1. 先用 修饰符 class 类名(可自定义)
    2. 定义变量
    3. 你想要使用的功能,如上所写的print 和 perr;
    4. 然后在Monobehaviour的组件里输出要想输出的对象
    5. 在主组件用自己创建的类定义变量 :public Cat cat;
    6. 在void star里对自己定义的 cat进行初始化 : cat = new Cat();
    7. cat.后加上自己想要定义的数值,以及想要输出的数值
  • 关于构造函数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
>void Start()
{
List<Cat> cats = new List<Cat>();
//通过循环调用Cat的构造函数,创造出100只猫
for (int i=1; i<=100; i++)
{
cats.Add(new Cat($"第{i}只猫",i));//每循环一次增加一只猫
}

foreach (Cat cat in cats) //我们上面创造了组合cats,利用遍历(foreach)来取出100只猫放到cat中 进行输出。
{
cat.print();
cat.perr();
}

}
void Update()
{

}
>}

>[Serializable]
>public class Cat
>{
public string catname ;
public int age ;

public Cat(string name, int age) //构造方法
{
this.catname = name; //等号=前面的this.catname的catname指的是上方定义的catname,而后面的name是形参的name
this.age = age; //this的用法是限定被参数隐藏的实例人员
}

//打印
public void print()
{
Debug.Log($"这只小猫名叫:{catname}, 它今年{age}岁了");
}
//猫叫
public void perr()
{
Debug.Log($"小猫{catname}不停的在叫。。");
}
>}
  • 关于构建第二个文件进行引入并输出在unity

Dog文件构造,在Assert/MyScripts

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using UnityEngine;

namespace MyScripts
{
[Serializable]
public class Dog
{
public string name;

public Dog(string name)
{
this.name = name;
}

public void Wang()
{
Debug.Log($"狗狗{this.name}正在叫。。");
}
}
}

引用dog文件的功能在unity上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing.Design;
using MyScripts;
using Unity.VisualScripting;
using UnityEngine;
public class MainPlayer : MonoBehaviour
{
public Dog dog;

void Start()
{


dog.Wang();
}

其关键在于引用文件,它会出现

1
using MyScripts;

一般会出现在你定义public Dog dog;Dog下面会出现红色的线或者三个字母呈红色

然后在mac中的操作上 option+enter

windows的操作上 ctrl+enter

会快速帮你定位到Dog的位置且自动帮你打上 using MyScripts;

  • Copyrights © 2022-2024 Jessy Huang
  • Visitors: | Views:

请我喝杯咖啡吧~