float xxx = 数字.数字f;
float类型赋值时需要在数后加f(小数默认类型为double,无法直接赋值给float类型,需要在末尾加f)
double类型浮点精度更高(小数点后位数更多)
float xxx = 数字.数字f;
float类型赋值时需要在数后加f(小数默认类型为double,无法直接赋值给float类型,需要在末尾加f)
double类型浮点精度更高(小数点后位数更多)
方法中的返回值:
return
统一方法内不能定义相同名字的变量
在方法1内部声明的变量无法在直接在外部使用
eg:
void strat()
{
void add(int a, int b)
{
int res = a + b;
}
print(res);
}
无法这样使用,因为res为add内声明的变量无法在外部(start方法内)使用
使用返回值:
void strat()
{
int add(int a, int b)
//add前的int为返回值类型
{
int res = a + b;
return res;
}
print(res);
int res = add(10,20)
//需要定义一个参数来接收返回值,之所以可以用res作为参数是因为位于不同方法中
print(res);
}
输出结果为30
需要指定返回值类型
返回值可以为空(void)
一个方法只能有一个返回值
返回值类型要和return值要匹配
参数定义:
void createnemy(参数类型 名字,参数类型 名字)
{
print("xxxxxx"+名字)
}
调用:
createnemy(new 参数类型(数字,数字,数字));
作用:控制方法里的变化,例如设置敌人位置血量等
枚举类型用于定义与类型有关的东西
定义(在class外):
enum 枚举类型名字
{
取值,
取值,
取值,
}
使用枚举类型声明变量:
枚举类型名字 xxx = 枚举类型名字.要调用的取值
method 方法(定义):
返回值 方法名(参数)
{
方法体
}
eg:
void start()
{
}
void 空返回值
调用方法:
方法名();
数组名.length访问数组长度
int[] hps = new int {10,20,30}
for(int i = 0; i<=hps.length; i++)
{
print(hps[i]);
}
i<=hps.length中i是根据索引来判断的,会因此最大索引为n-1
for循环:循环执行某一段代码
for(定义表变量;循环终止条件; ;)
{
循环体
}
eg:
for(int i = 1; i<=10; i++)
{
}
{}内为循环体(需要循环执行的代码)
i控制循环体执行次数
该行循环意为i等于1时判断条件(i是否<=10)若满足则执行一次{}内代码,并且在i的数值上加上1(i++),再次判断i是否<=10,依次循环执行
print("xxxxx"+i);
可以输出索引
比较运算符:bool类型
格式;
bool xxx = 操作数1 运算符 操作符2
1>2返回ture
eg:
bool res = 2>1
print(res);输出输出结果为ture;反之则输出false
等于要用两个等号==
bool类型只有ture/false两种返回结果
加/减等运算符
int hp = 100;
hp = hp+10;也可以简写为hp+=10;
print(hp);输出结果为110
减法同理
自增运算符:++(自身增加1)
自减运算符:--(自身减1)
int hp = 100;
hp++;
print(hp);输出结果为101,减法同理
数组的值可以改变
eg:
int[] hps = {10,20,30};
hps[1] = 50
print(hps[1]);
则输出50
int[] hps = {};
空数组,输出会只输出数组类型
int[] hps ={10,20,30};
直接构造,数组值的个数为位数
int[] hps =new int[3] {10,20,30};
[]内的数字为长度,长度和数值必须前后对应
int[] hps = new int[10]
构造一个长度为10的数组,数值为默认值(0~9)
int[] hps未构造,无法使用
可以改为int[] hps = null;
print(hps);
输出null
数组:存储一堆相同类型的数据
声明方式:
类型[] 数组名 = {数组值};
保存了多少个数据,数组长度就为几
通过索引导来访问数据 :从0开始,因此最大索引数为n-1
用法:数组名[n]
eg:
int[] hps = {10,20,30};
print(hps[0]);
输出10
int类型下两个整数相除若有小数则小数部分会被舍弃
int类型和float运算需要用float类型来接收(多个数据类型运算,返回结果是数据类型中大的)
folat xxx = 3+ 1.5f;
print(xxx);
+可以用来连接两个string
string res1 = "叔叔我啊,";
string res2 = "最喜欢钱了";
string RES = res1 +res2;
print(RES);
控制台输出结果为:叔叔我啊,最喜欢钱了
int 整数类型,变量声明后后续不能更改
初始化:给变量赋值
第一段是命名空间(namespace);其下面的为类,public class后的为类名
第三段为Start方法,只能执行一次,一般用其执行初始化。
第四段为Update方法,每一帧进行调用
有*代表没有保存
保存
点击untity左上角File里的Save as(另存为)即可
文件名与类名须保持一致
重命名
重命名按F12
重命名后脚本不会跟着改变这时需要前往VS手动修改使之与之相等在public class后的单词即所谓
要经常保存代码也是一样(Ctrl+s)
每次修改代码后返回until看右下角有没有应该加载在转,如果有则说明until正在识别新代码。如果没有则说明代码有问题(可能是没有保存或until无法识别你的代码)
无法识别你的代码解决方法:重启until
-------------------------------------------------
创建脚本
1.在Assets中选择create在其找到folder点击。
2.在其创建的文件夹(folder)右键选择create在其中选择C# scinpt并回车然后双击确认
斜杠代表注释,代码须符合语法结构否则无法运行
绿色为注解
运行
在unity中点击Hierarchy在其找到Great Empty点击生成Game Object把其脚本复制到上面(把Assets中需要复制的文件拖动到Inspector里)
在其控制台(VS)中输入(print)中填写要输入的东西后在其括号后加入;,然后点击左上角的保存。(这一步全以英文输入法来编写)
然后返回到unity点其播放按钮,并双击Maximi On Play。在运行成功后在左上方找到Window在里面点击General找到Console点击或点左下角的感叹号
第一段是命名空间(namespace);其下面的为类,public class后的为类名
第三段为Start方法,只能执行一次,一般用其执行初始化。
第四段为Update方法,每一帧进行调用
创建:
1.打开unity创建新的unity并保存
2.找到Assets并右键选择Creat里的C#script
--------------------------------------------------
在unity中找到Edit选择其中的Preferences在其中找到External Tools,找到External Script Editor选择VS。
--------------------------------------------------
1.打开unity创建新的unity并保存
2.找到Assets并右键选择Creat里的C#script
update是一秒50帧率
print(1);//正常输出
Debug.Log(2);//正常输出
Debug.LogWarning(3);//警告输出黄色
Debug.LogError(4);//报错输出红色
F2 快捷键修改文件名
Debug,log();
Debug,logWarning();
Debug,logError();