目录
比较运算符:https://wenku.baidu.com/view/93c32317a76e58fafab00341.html
命名空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class/*(类)*/ Learn /*(类名)*/: MonoBehaviour //类名要和文件名(脚本名)保持一致;
{
// Start is called before the first frame update
void Start() //Start方法
{
//只执行一次,常用于初始化
}
// Update is called once per frame
void Update() //Update方法
{
//每一帧都会进行调用
}
}
创建一个命名空间
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Money; //引入我们创建的命名空间,如果没有引入,后面是不可能调用里面的东西的。
public class Learn : MonoBehaviour //这里其实是声明了一个类,它属于UnityEngine这个命名空间,
//并且继承了UnityEngine里面的类MonoBehaviour
{
void Start()
{
MyMoney data1 = new MyMoney(); //用我们创建的新命名空间里的类声明一个类的变量
BossEnemy enemy1 = new BossEnemy();
enemy1.name = "机动战士高达";
enemy1.Move();
}
}
class BossEnemy
{
public string name;
public int hp;
public void Move()
{
Debug.Log(name + "正在移动");
}
}
namespace Money //声明一个命名空间,名字叫Money
{
class MyMoney //在命名空间里创建一个类
{
}
}
关于输出
1.print( ); //只有在MonoBehaviour 里面才能使用
2.Debug.Log( ); //可在任意类型里面,任意类里面输出使用
Debug.LogWaring( ); //输出警告
Debug.LogErro( ); //输出错误
关于数据类型
详细的可以访问网址:C#基础--之数据类型 - tonney - 博客园
整型:
int hp = 100;//这里100默认为int类型,所以这里没有错误
浮点类型:
float hp =3.4;//这是错误的,这里3.4默认的是double类型,把它赋值给float就错了。正确的写法为:float hp = 3.4f;
布尔类型:
bool isFirst;//默认为false,等价于bool isFirst=false;
字符类型:
char c ='c';//单引号
字符串类型:
string name = "机动战士高达";//双引号
"+,-,*,/"运算符:
int a = 92;int b = 10;
int res = a+b;
int res =a / b;//两个整数相除,小数部分会被自动舍去
int res =3+3.2f;//这个是错误的
float res =3+3.2f;//多个数据类型运算,返回的结果类型是数据类型大的
hp = hp +10; hp += 10;
hp++,hp--;//自增自减
string str1 = "my name is ";
string str2 = "机动战士高达";
string str3 = str1 +str2;//"+"可以连接字符串。
比较运算符:https://wenku.baidu.com/view/93c32317a76e58fafab00341.html
int hp =100;
bool res = hp>0;//此时bool就是true,可以用来判断角色的血量还剩多少。
数组
方法一:
int[] hps ={100,20,80,90,30};
print(hps[0]);
int[] hps2 ={ };//这里默认是声明了一个长度为0,初始值为0的数组。
print(hsp2); ——>System.Int32[] //输出的是这个数组的类型。
int[] hps;//这个是不正确的,这个数组是不存在的,我们只是构造了一个名字。
方法二:
int[] hps = new int[10];//new就是构造,构造出一个新的数组,10为其长度,这
里初始值为0。
方法三:
int[] hps = new int[5] { 3, 2, 5, 6, 4 };//数据长度必须和前面声明的个数相同。
用for循环遍历数组:
void Start()
{
int[] hps = new int[5] { 3, 2, 5, 6, 4 };
for (int i = 0; i < 5; i++)
{
print(hps[i]);
}
//或者
int[] hps2 = new int[5] { 3, 2, 5, 6, 4 };
for (int i = 0; i < hps2.Length; i++)
{
print(hps[i]);
}
}
method 方法
void Start() //Start方法,方法名首字母大写
{
}
返回值 方法名(参数) {
方法体
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Learn2 : MonoBehaviour
{
public GameObject player;
public Learn1 script;
//组件的禁用和激活
void Start()
{
int res = Add(10, 67);
print(res);
}
int Add(int a, int b) //有返回值,只能返回一个值。
{
int res = a + b;
return res;
}
}
我们经常用到的方法还有:GetComponent<Rigidbody>();
枚举类型:
枚举是放在public前面的
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
enum RoleType //enum为关键字,RoleType为枚举类型的名字
{
Mag,
Soldier,
Wizard
}
//格式为
enum Name
{
Type1,
Type2,
Type3,
Type4
}
public class Learn2 : MonoBehaviour
{
void Start()
{
RoleType rt = RoleType.Mag;
rt = RoleType.Soldier;
if(rt==RoleType.Mag)
{
print(100);
}else if(rt==RoleType.Soldier)
{
print(200);
}
}
}
class类
MonoBehaviour 是Unity创建的类,类和类之间是可以继承的
public class Learn2 : MonoBehaviour // : MonoBehaviour 表示继承自 MonoBehaviour 这个类
{ 这里是Learn2继承了MonoBehaviour
}
类的定义:
class BossEnemy //这个类相当于利用我们学过的类型组建了一个新的类型
{
public string name; //public的字段才能通过对象访问
public int hp; //这里利用名字和hp就组装了一个敌人的类型。
}
声明变量:
public class Learn2 : MonoBehaviour
{
void Start()
{
Enemy enemy1 = new Enemy(); //Enemy enemy1为声明类的变量,利用类声明的变量,可以叫做对象, new Enemy()是赋值,类的创建,构造对象,必须要赋值。
enemy1.name = "机动战士高达"; //如果不是public string的话,这里是访问不了的。
}
}
类中的方法:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Learn2 : MonoBehaviour
{
void Start()
{
BossEnemy enemy1 = new BossEnemy();
enemy1.name = "机动战士高达";
enemy1.Move(); //调用类里面的方法。
}
}
class BossEnemy
{
public string name;
public int hp;
public void Move() //对于方法,我们也必须要设置为public才可以在外面调用
{
Debug.Log(name + "正在移动"); //这里使用不了print()。
}
}
在Unity里面,它写了很多类,我们也会经常使用,例如:Input.GetAxis("Horizontal"); //Input为类,GetAxis()为方法。
Debug.Log(name + "正在移动");
更多类和方法请见:
Scripting API(API手册):Unity - Scripting API: (unity3d.com)
操作手册:Unity - Manual: Unity User Manual 2021.2 (unity3d.com)
MORE
波浪线
1)、如果你的代码中出现了红色的波浪线,意味着你的代码中出现了语法错误。
2)、如果你的代码中出现了绿色的波浪线,说明你的代码语法并没有错误,只不过提示你有可能会出现错误,但是不一定会出现错误。警告线。
快捷键:
快速注释:Ctrl + k + c
1)单行注释 //
2)多行注释 /*要注释的内容*/
3)文档注释 /// 多用来解释类或者方法
取消注释:Ctrl + k + u
撤销:Ctrl + z
保存:Ctrl + s
快速对齐代码:Ctrl + k + d
快速弹出智能提示:Ctrl + j
选中单行内容:Shift + End、Shift + Home、Shift + 上下左右
添加命名空间:Alt + Shift +F10
转到帮助:F1
查看类型定义:F12
折叠代码:#region ...#endregion