目录
- void Awake() void Start() void Update() void FixedUpdate()
3-3.【物理引擎 与 碰撞检测】- 1.物理引擎:▼☑Rigibody(刚体组件)(有重力阻力等)- ▼☑Box Collider(碰撞体组件)- 2.碰撞检测:(物体间可发生碰撞的情况)
4-1.【数学基础⑴:向量 与 坐标系】- 向量、标量、三维向量
4-3.【Vector3三维向量⑴:静态变量与实例变量】- 1.静态变量与实例变量(就是几个固定的三维向量、向量和标量)
C语言基础
一:初识MonoBehaviour
1-1.C语言基础
一:C#的语法
⒈C#的值类型
①C#的值类型
②C#的struct和denum
⒉C#逻辑语句
①C#的条件语句
②C#的循环语句
⒊C#函数结构
①定义与使用函数
②函数的重载
③函数的委托
⒋C#的引用类型
①C#的Class
②C#的Interface
⒌C#的类型转换
①C#的隐式和显式转换
②C#通过Method
③C#的装箱拆籍
⒍C#的集合类型
①C#数组
②C#集合类
⒎C#的泛型
二:面向对象的基础概念
⒈C#的封装
⒉C#的继承
⒊C#的多态
三:设计模式
⒈单例模式
⒉监听者
⒊状态机
1-2.脚本的创建与调试(Debug.Log)
1【Console控制台窗口】(脚本测试)-(①②③④⑤)
- ┃【脚本的创建】(①[项目窗口]--右键--创建--C#脚本、 ②物体属性中--[添加组件]--搜索New Scpipt即可添加脚本)
- ┃(注:C#脚本的名称必须与脚本内的名称是相同的、改名称时要一起改)(脚本必须挂上才有效)
- ┃(编译器的选择:编辑--首选项-外部工具:在这里选)
public class A : MonoBehaviour //(②:A :这个名称与C#文件的名称要一样)
{
void Start() //◆(③运行-只运算一次)
{
Debug.Log("Hello"); //(④运行-打出字符)-(用于测试)(实现:打出字符-用于测试脚本)
}
void Update() //◆(⑤运行-循环运算)
{
}
}
1-3.脚本的生命周期
- void Awake() void Start() void Update() void FixedUpdate()
void Awake() -//◆(①运行-这个函数下的方法即可由系统自动调用)(只需将C#值文件挂到物体上)
void Start() -//◆(②运行-只运算一次)
void Update() -//◆(③运行-每帧都运算一次)
void FixedUpdate() -//◆(④运行-每隔固定时间运算一次)
- //(设置固定时间)-(【Edit菜单】--Project Settings--Time--固定时间步进FixedUpdate[XXX秒](这里设置时间))
(这是系统的方法函数、脚本的生命周期)(控制代码怎么运行)
3.(注:这个是摘抄于下面的)-(下面有详解)
【OnEnable, OnDisable, OnDestroy】(这是三个方法函数)-(声明方法即可)(常用于设置游戏结束运行后的状态)
①OnEnabe(): (当对象变为可用或激活状态时-此函数被调用)-(注:这里的对象指的是 挂有该脚本的对象)
②OnDisable():(当对象变为不可用或非激活状态时-此函数被调用)-(即当这个脚本不可用或非激活时-此函数被调用)(也有当游戏结束运行时-此函数被调用)
③OnDestroy():(当MonoBehaviour将被销毁时,这个函数被调用)-(即当游戏结束运行时-此函数被调用)
使用方法:
void OnEnable() -//(声明方法函数即可)(有3个)
{ -//
} -//
(下面也有)
1-4.变量的声明与使用:
- 1.常用变量、 值类型、 引用类型
- 2.FindGamePbject 获取场景实例-(即用脚本自动获取到物体)
- 3.数据类型:值类型、 引用类型
- 4.访问修饰符
1.【变量的声明与使用】(声明变量)
public class A : MonoBehaviour //(②:A :这个名称与C#文件的名称要一样)
{
public bool boolleanValue; //值类型(可直接赋值)
public float floatValue; //小数
public int intValue; //整数
public Vector2 vector2Value; //
public Vector3 vector3Value; //
public Quaternion queternionVelue;//
public byte byteVelue; //
public string stringVelue; //字符
public enum emType { A, B, C }; //
public emType em; //
private Color[] myColorValues; //颜色数组
public GameObject otherObject; //引用类型(需引用物体)
public Test testScript; //
2.【FindGamePbject 获取场景实例】-//
void Start()
otherObject = GameObject.Find("Cube"); //方法1:(“Cube”为物体的名称-如有重名称获取到的是新创建的那一个物体)(免去了拖到物体赋值)
otherObject = GameObject.FindGameObjectWithTag ("Finish"); //方法2:("Finish"为物体的标签名称)(即可获取到该标签下的物体)
//(在【Inspector(属性编辑窗口)】-[Tag](给物体添加标签)-(可自定义标签))
my上黑1的预设[1] = (GameObject)Resources.Load("Prefabs/项目1_Canvas/上黑边1_Canvas/上黑1_A1_Panel"); //┓(自动获取到 上黑1的预设[1])(注:必须放在Resources/Prefabs文件夹下) //(自动获取到项目窗口中的物体文件)
//(实现:通过物体名称 / 物体标签-自动获取到物体)(自动获取到项目窗口中的物体文件)
或 myCube = myCube2.transform.Find("XXX / XXX / cube"); //
//(实现用来自动搜索子级物体、括号中的斜杠表示下一级)
3.【数据类型】
①值类型:(eg:int、 float、 bool、 Structs:Vector3、Quaternion)(注:值类型-只是给物体赋值-不会对元物体有改变)-(多用这个)
②引用类型:(Classe:Transform、GameObject)(注:引用类型-会直接对原物体有改变)-(少用)
4.【访问修饰符】(访问修饰符在Unity监控面板的表现形式)
- ┃public(外显、可在监控面板看到、可在外部赋值等操作)
- ┃private(不外显)
- ┃protected(不外显)
二:Unity中的断点(F9)
三:GameObject对象
3-1.【物体 与 组件的开关】
- 1.【组件的Enable / Disable】(组件的启用/禁用)-(即可控制组件显示/隐藏)
- 2.【物体的Active / Inactive】(物体的激活/非激活)(也可控制组件显示/隐藏)
- 3.【OnEnabe, OnDisable, OnDestroy】(这是三个方法)(与上面的相关)
1.【组件的Enable / Disable】(组件的启用 / 禁用)
- ┃(也就是【Inspector(属性编辑窗口)】-[物体] 的▶ ☑Mesh Renderer 组件这个的开关)
public MeshRenderer mMesh; //(然后将物体拖给他即可)
void Update() //◆(⑤运行-循环运算)
{
if (Input.GetKeyDown(KeyCode.Space)) //(如果点击键盘按键)
{
mMesh.enabled = false; //(物体消失)(enable 为Bool类型)
mMesh.enabled = !mMesh.enabled; //(将上行改为这个)(即可控制显示隐藏切换)
}
//(实现:控制物体的启用 / 禁用)-(即可控制物体显示 / 隐藏)
}
2.【物体的Active / Inactive】(物体的激活 / 非激活)
- ┃(也就是【Inspector(属性编辑窗口)】-[物体] 的顶部的 -☑[物体名称] 这个的开关)
public GameObject otherObject;
void Start() //◆(③运行-只运算一次)
{
otherObject.SetActive(false); //(即可取消激活该物体-以及他的子物体也都取消激活)(需先声明变量GameObject获取到物体)
}
//(实现:控制物体的激活 / 非激活)-(即可控制物体显示 / 隐藏)
//(以下是补充)
只有自身以及父级物体处于激活状态时,该物体的activeInHierarchy属性才为true
GameObject.activeInHierarchy
GameObject.activeSelf
//(用于检测物体是否处于激活状态)
3.【OnEnable, OnDisable, OnDestroy】(这是三个方法函数)-(声明方法即可)(常用于设置游戏结束运行后的状态)
①OnEnable(): (当对象变为可用或激活状态时-此函数被调用) -(注:这里的对象指的是 挂有该脚本的对象)
②OnDisable():(当对象变为不可用或非激活状态时-此函数被调用) -(即当这个物体不可用或非激活时-此函数被调用)(也有当游戏结束运行时-此函数被调用)
③OnDestroy():(当MonoBehaviour将被销毁时,这个函数被调用) -(即当游戏结束运行时-此函数被调用)
使用方法:
void OnEnable() //(声明方法函数即可)(有3个)
{
}
void OnDisable() //
{
}
void OnDestroy() //
{
Debug.Log("222");
}
①(实现:当对象变为可用或激活状态时-此函数被调用1次) -(注:这里的对象指的是 挂有该脚本的对象)
②(实现:当对象变为不可用或非激活状态时-此函数被调用1次) -(即当这个物体不可用或非激活时-此函数被调用)(也有当游戏结束运行时-此函数被调用)
③(实现:当MonoBehaviour将被销毁时-这个函数被调用1次) -(即当游戏结束运行时-此函数被调用)
3-2.【Message响应事件】
- 1.【Message 响应事件】(即事件函数)(讲了6个以下面2个为例)
- 2.OnTriggerEnter():(当物体A 进入 触发器B区域时 - 调用方法函数)
- OnTriggerExit ():(物体A 停止触发 触发器B区域时 - 调用方法函数)
- OnTriggerStay():(当物体A 接触 触发器B区域时 - 每帧都调用方法函数)
1.【Message 响应事件】(即事件函数)(可从官网查看解释)-(位置:[Scripting API]-UnityEngine--Casses--MonoBehaviour-)(点击任一组件的?问号即可到达官网)
(注:加★星号的表示有讲解)
- ⒈启动与刷新函数
- ⑴启动
- ①Reset()★
- ②Awake()★
- ③Start()★
- ⑵刷新
- ①FixedUpdate()★
- ②Update()★
- ③LateUpdate()★
- ⒉交互函数
- ⑴物理Phusic
- ①OnTriggerEnter()★-(当Collider(碰撞体)进入trigger(触发器)时启用) -(●使用方法在下面)
- ②OnTriggerExit ()★-(当Collider(碰撞体)停