Unity3d知识总结-C#使用1。
本文为自学总结内容,如有错误请指出,多谢。
一:自定义类。
在unit3d中创建自定义类,不要继承MonoBehavior类。可以在脚本开头声明自定义类。要被实例化的自定义类要声明为public类型。要调用的成员变量或成员方法要被定义成public型,也可以通过private修饰进行封装并通过创建共有的方法对外提供获取被封装的属性。实例代码如下:
Test1.cs脚本(脚本名与继承自Monobehavior的类名必须相同,否则编译失败)。
1.
//要创建的对象的类必须是public型。对象能调用的是public类型修饰的成员。
public class Person{
privatestring name;
publicint age = 25;
//static可以通过类名直接访问,但要在调用的类中或脚本中首先声明其类型。
publicstatic int moeny = 25000;
//必须对需要被创建对象的类写空构造函数,不写会报错显示缺少构造函数constructor……。
public Person(){}
publicPerson(string name)
{
this.name= name;
}
//定义该方法为虚方法,可以在子类中对其进行功能重写
public virtual string getName()
{
returnname;
}
}
2.
//定义继承自Person的子类Man
public class Man : Person{
publicstring iD = "001";
publicMan(){}//空构造函数
//定义该方法被子类重写
publicoverride string getName(){
returniD;
}
publicvoid setName(string name){
this.iD= name;
}
}
3.创建继承自MonoBehavior类的子类。
public class Tes1 : MonoBehaviour {
/*在同一脚本组件中创建类的实例化对象方法:
*
创建对象步骤:
* 1.首先声明该类。
* 2.在Start方法中创建对象,并使用类引用指向对象。(因为Start方法是unity为初始化数据提供的方法,也可以在其他地方创建对象)。
* 3.使用对象的句柄调用对象属性。(private不可以)
*
* */
publicGUIText myText;
publicPerson man;//声明父类型的引用
publicMan boy1;//声明继承自Person的子类的类型引用
voidStart () {
//对象初始化,必须手动创建要创建对象的类的空构造函数。
man= new Person("创建Person的对象,并初始化为:小强");
boy1= new Man();
boy1.setName("继承Person的类Man小刚");//调用Man类中的方法。
}
//Update is called once per frame
voidUpdate () {
myText.text = man.getName()+"。父类Person的对象age:"+man.age+"。父类Person的对象moeny:"+Person.moeny;
Debug.Log(""+boy1.getName()+"年龄:"+man.age+"收入:"+Person.moeny);
}
}
3.建立一个脚本名为Test2.cs
using UnityEngine;
using System.Collections;
/**
*包含父类的.cs文件即使与创建对象的脚本文件不在同一目录下,子类也能访问父类文件,只要父类是共有的,在未被使用的情况下也可以使用(未使用到场景中)。
*
* */
public class Test2 : MonoBehaviour {
publicPerson me;//声明定义在Test1中的类类型引用
publicMan boy; //声明定义在Test1中的类类型引用
voidStart () {
me= new Person("lucy");//创建类的对象
boy= new Man();
boy.setName("大壮");//调用实例化对象的方法。
}
voidUpdate () {
Debug.Log("Test2脚本中创建Person的对象大壮:"+me.age+me.getName()+boy.getName());
}
}