c#脚本 C#源代码 C#源文件
一般使用最多的是C#Script,Javascript使用较少
c#脚本 C#源代码 C#源文件
一般使用最多的是C#Script,Javascript使用较少
public的变量会在Inspector中显示并修改,
private则不能,不指定的话会默认private
字段名/ 字段 / 属性 / 变量 / 关键字 / 访问修饰符 / 类
long 64位有符号整数
int 32位有符号整数
float 浮点类型,数较小,精度较低
double 浮点类型,数较大,精度大
写作float a = 3.14f, 不加f会被认为是double
Debug.Log与Debug.LogWarning与Debug.LogError
正常与警告与错误
Float赋值需要加f如5.3f,小数默认double类型
int=变量
public class Leam : MonoBehaviour {
// Use this for initialization
void Start()
{
new Rnemy();//用 Rnemy声明了一个变量enemy,然后给他赋值(new Rnemy();给它Rnemy一个默认值
//利用类声明的变量可以叫做对象,new Rnemy是构造对象的过程
// Rnemy enemy1 = new Rnemy();//构造对象
// Rnemy enemy1 = null; //nell只有名字没有实际性的内容
Rnemy enemy1 = new Rnemy();//用Rnemy声明enemy1,new为关键字Rnemy为类名,
// print(enemy1.name);//输出为null因为name默认为null
//print(enemy1.hp1);//输出为100
enemy1.name = "铁甲小宝";//可以修改变量让name输出为铁甲小宝
// print(enemy1.name);//输出为铁甲小宝
Rnemy enemy2 = new Rnemy();//可以用Enemy创建多个对象,方便创建
enemy2.name = "橙子";//改变,变量name名字为橙子
// print(enemy1.name + enemy2.name);
// print(enemy2.name);//输出为橙子
//print(enemy1.hp1+enemy2.hp2);//输出为120(hp1+hp2)
enemy1.move();//调用move方法,输出为铁甲小宝正在移动
enemy1.Attack();//调用 Attack方法,输出为铁甲小宝正在攻击
enemy2.move();
enemy2.Attack();
}
class Rnemy
{
public string name;//public的字段才可以通过字段来访问,上面才可以print访问name
public int hp1=100,hp2=20;//public的字段才可以通过字段来访问,上面才print以访问hp
public void move() {
Debug.Log(name + "正在移动"); }//move移动的意思,这个方法定义了谁正在移动
public void Attack()
{
Debug.Log(name + "正在攻击");//Attack攻击的意思,这个方法定义了谁正在攻击
}
public class NewBehaviourScript : MonoBehaviour {
// Use this for initialization
private void Start()
{
//nt hp = 0;
// //f (hp <= 0)//满足这个条件执行
// {
// print("播放死亡动画");
// }
////lse//不满足hp《=0条件执行
// //{ print("播放行走动画");
//数组 类型[]数组名=(数组值) //通过索引访问数据:数组名(索引)
//int[] hps= { 100,20,80,90,30,};//数组长度为5(0-4)
//int[] hos2 = { 1 };//数组长为1
//print(hos2[0]);//输出数组100
//print(hps[0]);//输出数组1
//数组方法一
//int[] hps = { 100, 20, 80, 90, 30, };//这里数组长度为5(0-4)//数组名[索引]
// print(hps[1]);
// print(hps[2]);
//数组方法二
// int[] hps = null;//null为空值
// int[] hps2 = { };
// print(hps);
// print(hps2);
//数组方法三:
// int[] hps=new int[5] { 34,35,36,39,40 };
//print(hps[4]);
//for循环
//int(" 创建一个敌人");
//for (int i = 1; i <= 10; i++)//i控制循环次数i=1循环一次到i小于等于10循环结束
//{循环的代码:循环体}
// print(" 创建一个敌人" + i);//+i为给创建的敌人编号
//for(int i=0;i<7;i++)
//print(hps[i])
//for循环的运用
//int[] hps = new int[7] { 100, 200, 300, 400, 500, 600, 700 };
//i为索引,通过数组长度来确定要便利的次数
//for (int i = 0; i < 7; i++)
//{ print(hps[i]);
//通过Length可以访问数组长度
//for (int i = 0; i < hps.Length; i++)//通过Length动态访问数组长度,动态得到
//{ print(hps[i]);}
// {
// int res= Add(10, 20);//调用返回值才能输出print
// print(res);
// }
//int Add(int a, int b){
// int res = a + b;
数组:
int[] hp = new int[5]{1,2,3,4,5};
print();
Debug.Log();
1.两个整数相除,如果是除不尽的数,那么小数部分就会被自动舍去;
2.两个数据类型进行运算的时候,返回的结果类型是数据类型大的
例如:float a = 3 +3.2f
此时用float而不能用int;
//获取游戏物体的四种方式
//1
// 获取一个物体
public GameObject cameraMain;
// 获取一个物体身上的属性
public Camera mainCamera;
//2
// 按路径来查找 性能也可以
transform.Find("GameObject(1)/GameObject2");
//禁用一个碰撞器
BoxCollider collider = GetComponent<BoxCollider>();
collider.enabled = false;
//调用另一个文件的方法(不管那个组件是否被激活都可以使用里面的方法)
//引入一个方法
public Learn02_Player2 learn02;
//将那个文件的方法改成公用的
public void Start(){
print("我是第二种方法");
}
//进行调用
learn02.Start();
//修改组件内的属性
Rigidbody rgd = Getcomponent<Rigidbody>();
rgd.mass = 100;
//获取到物体身上的东西
Transform t = GetComponent<Transform>();
//获得一个碰撞器组
Collider[] colliders = GetCompoents<Collider>();
//用foreach遍历
foreach(Colloder c in colliders){
print(c)
}
//获得一个盒子碰撞器
BoxCollider boxcollider = Getcompoents<BoxCollider>();
//获得其他物体的组件
//引入其他物体
public GameObject player;
print( player.GetCompoent<Rigidbody>() );
//遍历
Transform[] children = transform.GetcomponentsInChildren<Transform>
foreach(Transform t in children){
print(t);
}
枚举类型
enum HeroType{
Soldier,
Master,
Assassin,
Tank,
Shooter
}
定义时
HeroType herotype = HeroType.Soldier;
public int 可以在unity 中直接修改
private int 属于是代码私有的东西
代码中定义的 int 默认为是private(私有) 格式的
python 的库 = C#的命名空间
不同的类要通过命名空间lai
布尔类型
bool isDie = true
字符类型
char c = 'c'
string name = "字符串"
必须要有f,否则3.4就是yi
float = 3.4f;