2021-05-18 unity学习笔记(1.整理-2)

目录

 

 

 

 

 

 

 

 

 

C语言基础

一:初识MonoBehaviour

1-1.C语言基础

1-2.脚本的创建与调试(Debug.Log)

1-3.脚本的生命周期

-        void Awake()    void Start()    void Update()    void FixedUpdate()

1-4.变量的声明与使用:

 -        1.常用变量、  值类型、  引用类型

-        2.FindGamePbject 获取场景实例

-(即用脚本自动获取到物体)

-        3.数据类型:值类型、  引用类型-        4.访问修饰符

二:Unity中的断点(F9)

三:GameObject对象

3-1.【物体 与 组件的开关】-        1.【组件的Enable / Disable】(组件的启用/禁用)-(即可控制组件显示/隐藏)-        2.【物体的Active / Inactive】(物体的激活/非激活)(也可控制组件显示/隐藏)-        3.【OnEnabe,  OnDisable,  OnDestroy】(这是三个方法)(与上面的相关)

3-2.【Message响应事件】-        1.【Message 响应事件】(即事件函数)(讲了6个以下面2个为例)-        2.OnTriggerEnter():(当物体A 进入 触发器B区域时 - 调用方法函数)-           OnTriggerExit ():(物体A 停止触发 触发器B区域时 - 调用方法函数)-           OnTriggerStay():(当物体A 接触 触发器B区域时 - 每帧都调用方法函数)

3-3.【物理引擎 与 碰撞检测】-        1.物理引擎:▼☑Rigibody(刚体组件)(有重力阻力等)-                             ▼☑Box Collider(碰撞体组件)-        2.碰撞检测:(物体间可发生碰撞的情况)

四:向量

4-1.【数学基础⑴:向量 与 坐标系】-        向量、标量、三维向量

4-2.【数学基础⑵:点积与叉积】

4-3.【Vector3三维向量⑴:静态变量与实例变量】-        1.静态变量与实例变量(就是几个固定的三维向量、向量和标量)

4-4.【Vector3三维向量⑵:静态方法】-        1.【Vector3的静态方法】(有16种静态方法)-        (实现-(返回AB的夹角值))-        (实现cube的位置只能在半径为1的球的范围内活动)-        (可以看出:叉积 就是与AB两个三维向量的所在平面相垂直的三维向量)-        (实现cube移动到小球B的位置、且可控制两个方向的速度)-        (速度1:控制旋转的速度)(速度2:控制直线移动的速度)-        (可实现生成自己的坐标系)-(方法很复杂-直接从官网复制-使用即可)-        (可使物体按照此坐标系变形/移动等)-        (通过画线可以看出-得到了向量A到向量B的投射-即向量C)(投射的图片-上面有)-        (通过画线可以看出-得到了向量A到 - 以向量B为法线(即XZ所在平面)-         的反射线-即向量C)(反射的图片-上面有)


 

 

 

 

 

 

 

 

 

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(碰撞体)停

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值