目录
12.unity编程基础
编程入门
一:语法基础
1-1.VS的使用
创建C#脚本
- (Unity中-右键-即可创建)
脚本内容简介
using System.Collections;
using System.Collections.Generic;
using UnityEngine; //(命名空间)(1.引用本文件没有的内容:类库文件或其他程序文件)
/** //(这是多行注释)
* XXX
* XXX
*/
public class a : MonoBehaviour //(2.类:继承)(方法之家)(这里类的名称要与外面的名称相同)
{
// Start is called before the first frame update
void Start() //(3.方法:在方法里面写指令)
{
}
// Update is called once per frame
void Update()
{
return; //(返回)
}
}
代码简介
- (如果出现红线-则表示脚本出错了)
基本语法
- 1.(区分大小写:A 和 a 是不一样的)
- 2.(代码结尾必须有分号 ;)
- 2.(注释:是对代码进行说明)-(注释就是随意些文字-且不会运行这部分)
- (单行注释“//”)-(常用这个)
- (多行注释“/****/”)-(这个上面有实例)-(一般放在开头-注释一些个人信息)
- (自动注释“///”)-(一般放在方法上面-对方法进行注释)
项目结构
- 解决方案(solution):项目之家
- 项目 (project) :程序文件之家
- 程序文件(.cs) :命名空间之家
- 命名空间(namespace):类之家
- 类 (class) :方法之家
- 主方法 (Main) :语句之家 (一个项目只能有一个Main方法)
代码结构
1-2.程序编写规范
1.命名规则
- 1.以(字母 、 _ 、 @)开头,后面随意
- 2.不要与系统中的关键字重复
- 3.注意大小写
- 4.同一区域不可同名
2.命名规范
- 1.命名尽量有意义
- 2.命名方式:(变量命名:首字母小写、后续单词的首字母大写、eg:myCube)
- (方法命名:所有单词首字母大写、eg:MyCube)
- 3.编程规范:
- 命名空间、类、方法 -所有单词首字母大写、eg:MyCube
- 局部变量 -首字母小写、后续单词的首字母大写、eg:myCube
- 代码结尾必须有分号 ;
- 建议:一个指令语句放一行
- 必须为英文输入法
1-3.数据类型(共15种)
补充(控制台)-(用来打出代码)
补:注释方法-区域注释(可以 展开/收起 的一种注释方法) (作用:方便整理)
void Start()
{
#region AAA //(这是展开的样子)-(AAA:自己输入名称)
Debug.Log(111); //(在中间区域输入代码语句)
#endregion //(当收起来后便只剩下名称:AAA)
}
1.基本类型
- 1.整数(常用 int) //(值类型-8个整数)
public class a : MonoBehaviour
{
//(值类型-8个整数)
public sbyte my1; //(8位有符号的整数) (取值范围-共255个字符:-128~+127)-(位数越多取值范围越多)
public short my2; //(16位有符号的整数)(取值范围-共XXX个字符:-32768~+32767)
public int my3; //(32位有符号的整数)(取值范围-很大)-(常用这个)
public long my4; //(64位有符号的整数)(取值范围-非常大)
public byte my5; //(8位无符号的整数) -(注:无符号就是指没有负数)
public ushort my6; //(16位无符号的整数)-(注:无符号就是指没有负数)
public uint my7; //(32位无符号的整数)-(注:无符号就是指没有负数)
public ulong my8; //(64位无符号的整数)-(注:无符号就是指没有负数)
- 2.浮点小数(常用float) (不精确的小数)(就是无限趋近于一个小数、但永远没有精确的值)
void Start()
{
//(以下是声明的局部变量)
double d1 = 0.012345678912345d; //(双精度小数)(可显示到小数点后的15位)(注:在结尾加 D/d)
float f1 = 0.0123456f; //(单精度小数)(可显示到小数点后的7位) (注:在结尾加 F/f)-(常用这个)
}
- 3.精确小数 (注:货币运算时会用到精确小数)
void Start()
{
//(以下是声明的局部变量)
decimal d2 = 0.123456789m; //(精确小数)-(可显示到小数点后28未)(注:在结尾加 M/m)
}
- 4.字符-单个 / 字符串-多个字符(常用 string)
void Start()
{
//(以下是声明的局部变量)
char c1 = 'A'; //(单个字符)-(字母、数字、汉字、特殊符号等都可以)(但只是一个字符)
string s1 = "AAAA"; //(字符串-多个字符)(string/String 都可以)
}
- 5.布尔 (bool)
//(以下是声明的局部变量)
bool b1 = true; //(bool布尔)-(true 真 / false 假)
b1 = false;
1-4.常量和变量
补:声明变量的步骤
- 步骤:声明变量 → 赋值 → 使用
1.常量和变量
- 变量:运行时可以改变的量
void Start()
{
//(以下是声明的局部变量)
int i1 = 18;
i1 = 19;
}
- 常量:运行期间保持不变的量
void Start()
{
//(以下是声明的局部变量)
const int i2 = 18; //(在类型前加个“const”可以将变量变为常量)-(常量是不可以改变的)
i2 = 19; //(会报错-这是句错误的语句)-(常量无法修改)
}
- 用户交互(eg:按下键盘按键)
void Update()
{
//(以下是声明的局部变量)
bool b2 = Input.GetKeyDown(KeyCode.Space); //(当按下空格时-就会返回 true)
}
类型转换-
- 可兼容类型的转换(eg:数字类型之间的转换)
- (隐式转换:某些类型会直接自动转换) (强制转换/显式转换:需要添加转换语句-数据有可能损失)
void Update()
{
//(以下是声明的局部变量)
int i1 = 1;
float f1 = 1.123f;
//隐式转换:某些类型会直接自动转换
f1 = i1; //(整数-可自动转换为小数)-(因为小数包括了整数)
//强制转换/显式转换:需要添加转换语句-数据有可能损失(需在前面加上(要转换成的类型))
i1 = (int)f1; //(小数-强制转换为了整数)-(但会损失小数点后面的部分)
}
- 不可兼容类型的转换(eg:数字类型 与 字符类型 之间的转换) ( 类型.Parse(XXX) )
void Update()
{
//(以下是声明的局部变量)
string myString = "AAA";
int.Parse(myString); //(eg:强制将字符类型-转换为了整数类型)
int myInt = 1;
myString = myInt.ToString(); //(方法二:eg:将整数类型-强制转换为字符类型)
}
1-5.表达式和运算符
1.表达式和运算符
- 运算符
void Update()
{
//(以下是声明的局部变量)
int myInt1 = 1;
int myInt2 = 2;
//(以下是基础赋值运算符)
myInt1 = myInt2; //(直接赋值)
myInt1 = myInt1 + myInt2; //(这和下面的方法是相同的)
myInt1 += myInt2; //(加法)(这种是简化的写法-节省空间)
myInt1 = myInt1 - myInt2; //(这和下面的方法是相同的)
myInt1