基础不牢,地动山摇系列 ------ 软硬通吃 unity常用API

news2024/11/17 15:53:07

在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 unity 实战系列


⭐相关文章⭐
———————————————————
-关于游戏剧情模式中用到的基础简单API

-控制游戏人物移动的细节到底有多少?

-坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)
————————————————————


文章目录

  • 一,生命函数
    • 👨‍💻(1)Reset()://重置函数,
    • 👨‍💻(2) Awake(); //苏醒函数
    • 👨‍💻(3)OnEnable(); //组件调用函数
    • 👨‍💻(4)Strat():
    • 👨‍💻(5) UpData() ;
    • 👨‍💻(6)LateUpate():
    • 👨‍💻(7)OnDisable():
    • 👨‍💻(8)OnApplicationQuit()
    • 👨‍💻(9)OnDestroy();
  • 二,API 之--面向对象篇
    • 👨‍💻👍1.创建物体的三种方式
    • 👨‍💻👍2.游戏物体的获取和查找
      • 获取
      • 查找
      • 失灵
    • 👨‍💻👍3.继承
  • 三,API 之--transform组件篇
    • 👨‍💻👍1.transform的各种引用
    • 👨‍💻👍2.游戏物体的自身方向和世界轴方向
    • 👨‍💻👍3.用transform组件来进行查找(包含索引查找)
  • 四,API 之--Vector实质
    • 👨‍💻👍1.Vector2结构体的静态变量
    • 👨‍💻👍2.Vector2 结构体的成员变量
    • 👨‍💻👍3.索引器的格式和存在的目的
    • 👨‍💻👍4.Vector2的公共函数-Equrls()
    • 👨‍💻👍5,Vector2的静态方法
  • 五,API 之--随机类
    • 👨‍💻👍1,随机类的静态变量
    • 👨‍💻👍2.随机类的静态函数
  • 六,动画基础
  • 七,bug情况以及处置
    • 👨‍💻👍1.中文显示乱码现象的解决措施
    • 👨‍💻👍2.版本中存在老包升级情况
    • 👨‍💻👍3.printf 和 Debug.Log的区别


一,生命函数


👨‍💻(1)Reset()://重置函数,


调用情况和时间:
编译器不运行的情况下 和 使用脚本组件Reset功能的时候, 挂脚本的时候

调用次数: 1次


👨‍💻(2) Awake(); //苏醒函数


调用情况和时间:

1.点击运行的时候

2.组件从失灵到激活的时候,但只调用一次

3.Instantiate方法调用的时候

调用次数: 1次


👨‍💻(3)OnEnable(); //组件调用函数


调用情况和时间: 组件从失灵到激活的时候,可多次实现

调用次数:只要组件有失灵到激活的状态就可调用 ,


👨‍💻(4)Strat():


调用情况和时间: 当游戏物体被激活,或者脚本组件被激活时调用 , (点击运行的时候也是会被激活)

调用次数: 1次


👨‍💻(5) UpData() ;


调用情况和时间: 在以上生命周期函数之后,每帧调用一次

调用次数: 大概每秒60次左右

变量赋值生效顺序:

变量声明直接赋值 > 检视面板赋值 > Awake > Enable > 外部赋值 > Start


👨‍💻(6)LateUpate():


调用情况和时间: 在Update调用之后,并且也是每秒60帧左右(适用于物体移动后的视角跟随)

调用次数: 大概每秒60次左右


👨‍💻(7)OnDisable():


调用情况和时间: 和OnEnable差不多,但是Disable是组件从完好到失活的状态, (相当于关闭组件的时候)

调用次数: 组件从激活到失灵的时候调用(二者前提是在游戏运行的时候)


👨‍💻(8)OnApplicationQuit()


调用情况和时间: 当所有游戏物体退出时调用,适用于打包的时候

调用次数: 满足以上情况便调用


👨‍💻(9)OnDestroy();


调用情况和时间: 适用于物体的销毁,删除,以及游戏的停止退出时

调用次数: 满足以上情况便调用


二,API 之–面向对象篇


👨‍💻👍1.创建物体的三种方式


1.new 构造函数
2.instantiate 实例化方法
3.Gameobject .CreatPrimtive(Primitve Type.xx);


👨‍💻👍2.游戏物体的获取和查找


获取

  • 1.this
  • 2.通过游戏物体的标签获取 GameObject.Label = ''yyy";
  • 3.通过游戏物体的名字获取 GameObject.name = ''yy";

1.子对象的获取

  • 1.transform.Getchild();
  • 2.transform.GetsiblingIndex() -----获取同级索引(查找自已是父亲的第几个儿子)

2.父对象的获取

  • 1.transform.parent();

查找

  • 1.GameObject,Find()-----按照名字查找游戏对象 ,用太多会降低性能
  • 2.GameObject,FindobjectType<>();------按照组件名来查找游戏物体
  • 3.GameObject.FindGameObjectwithTag()------按照游戏物体标签来查找游戏物体

失灵

  • 1.xx.SetActive(false); --------应用于游戏物体xx为GameObject类型继承自Object类
    使得相应的游戏物体失灵
  • 2.xx.enable = fasle;-----------应用于游戏物体的组件xx为组件的类型,继承为Copment类
    使得相应游戏物体的组件失灵

👨‍💻👍3.继承


常见类的继承关系:

自己创建的类 -> MonoBehavair->Behavir->Conpment->Object


三,API 之–transform组件篇


👨‍💻👍1.transform的各种引用


transform.position ----游戏物体trans组件的世界位置信息
transform.Rotation----游戏物体的四元旋转信息
transform.enlerAugle- —游戏物体的欧拉角的信息(也就是Inspactor面板中的Rotation信息)
transform.localposition/localRotion/localenleAugle--------表自身的自身信息


👨‍💻👍2.游戏物体的自身方向和世界轴方向


针对自身:
transform.forword ----向前Z轴方向
transform.up------向上y轴方向
transform.right----向右x轴方向
针对世界:
vector.XX…


👨‍💻👍3.用transform组件来进行查找(包含索引查找)


Debug.Log(“被创造的游戏物体的世界坐标位置是”+xx.transform.position);
Debug.Log(“当前transform组件挂载的游戏物体对象的名字是”+transform.name);
Debug.Log(“当前transform组件挂载的游戏对象的子对象的数量”+transform.childCount);
Debug.Log(“当前游戏物体的世界四元旋转值为”+transform.rotation);
Debug.Log(“当前游戏物体的自身大小为”+transform.localScale);
Debug.Log(“当前游戏物体的自身位置为” + transform.localPosition);
Debug.Log(“当前游戏物体的自身四元旋转位置为”+transform.localRotation);
Debug.Log(“当前游戏物体的世界欧拉角为”+transform.eulerAngles);
Debug.Log(“当前游戏物体的自身欧拉角为”+transform.localEulerAngles);
Debug.Log(“查找当前游戏物体的子对象的trans组件名称为” + transform.Find(“sboss”));
Debug.Log(“查找当前游戏物体的第一个子对象为” + transform.GetChild(0));
Debug.Log(“查找该游戏物体在父类中子对象的索引位置” + transform.GetSiblingIndex());


四,API 之–Vector实质


👨‍💻👍1.Vector2结构体的静态变量


1.Vector2.up // 以下的形式pint之后是 (X,y)
2.Vector2.down
3.Vector2.Left
4.Vector2,Riht
5.Vector2.one //单位化之后的值
6.Vetor2.zero // 原点的值


👨‍💻👍2.Vector2 结构体的成员变量


1.x
2.y
3.XX.normalized //返回 单位化的值
4XX.magnitude //返回该向量的模长
5.XX.sqrMagnitude //返回该向量 模长的平方
‘’‘’‘’‘’‘’‘’


👨‍💻👍3.索引器的格式和存在的目的


1,格式
访问修饰符 + 数据类型+ this [ 索引类型 index]
{
get
set
}
在这里插入图片描述

2.目的:

简化结构体或者类成员的引用 (简化代码),可向数组用下标那样调用成员


👨‍💻👍4.Vector2的公共函数-Equrls()


Equrls(); // 比较两个向量是否相等
用法 : XX1 . Equals( XX2 );


👨‍💻👍5,Vector2的静态方法


  • 1.vector2.Angle(); 返回两个向量的夹角
  • 2.vevtor2.Distance(): 返回两个点(向量)的距离
  • 3.Vetor2.Lerp() ;返回两个向量的差值
  • 4.Vecor.unlimitLerp() ; 限制向量的移动步频(可以理解为规定速度移动)、

在这里插入图片描述

  • 5.Vector2.MoveTowards(): 匀速

  • 6.vector2.max();

  • 7.vector2.min();

  • 8.vecotr2.smoothDamp();平滑阻尼随着时间的推移逐渐改变一个向量朝着期望的目标

在这里插入图片描述


五,API 之–随机类


👨‍💻👍1,随机类的静态变量


  • ①随机出旋转数
    Random.rotantion
  • ②随机出的欧拉角
    Random.rotation.enluarAngles
  • ③随机出的欧拉角转四元数
    Quteronion.luer.( Random.rotation.enluarAngles)
  • ④随机出的浮点数
    Random.Vauler 范围是 【0,1)
  • ⑤按图形随机出数字 --应用于枪口的圆形子弹发射(FPS)
    Random. insideUnitCircle

👨‍💻👍2.随机类的静态函数


  • ①范围内的随机数
    Random.range(0 ,4 ) 左闭右开->[ 0 , 4 )
    Random.range( 0, 4f ) 左闭右闭 -> [ 0 ,4 ]
  • ②伪随机数设置状态
    Random.InitState(1) 开启状态
  • ③伪随机数
    Random.range( 0 , 4 ) 左闭右闭 -> [ 0 , 4 ]

六,动画基础


1,ipg -> UI and 2D
( 直接将图集进行拖拽给对象) 变成动画
2,代码更改速度
animator .speed
3,代码实现动画的播放
animator.dispaly
4,代码设置过度参数
animator.Setfloat(“Speed”, 1 )
5,代码实现动画的过度
animator.CrossFade (“Walk” , 0.1f) __值越小过渡的越快444444


七,bug情况以及处置


👨‍💻👍1.中文显示乱码现象的解决措施


  • unity-Hub–版本显示资源—Date------resouces------ScriptTempelet--------81(文件名)->可自定义初始化界面
  • 在这里插入图片描述

👨‍💻👍2.版本中存在老包升级情况


  • windows – packge Manager\

👨‍💻👍3.printf 和 Debug.Log的区别


(1)printf : 必须要继承,Monobehivar类

(2)Debug.Log:

1.Debug.LogWarning :显示警告、

2.Debug.LogError:显示错误


⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/125611.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第01讲:Git安装及基本操作

一、什么是Git 版本控制系统&#xff08;VCS&#xff09;是将『什么时候、谁、对什么文件做了怎样的修改』这样的信息以版本的形式保存并进行管理的系统。 简单来说&#xff0c;版本控制系统会去记录它所管理的文件的『历史版本』。 版本控制系统 “不是网盘&#xff0c;而胜…

linux常用命令(一)-路径切换及查看

切换路径-cd 我们可以使用cd&#xff08;change directory&#xff0c;切换目录&#xff09;的命令来进行目录切换 常规 其命令格式为 cd [相对路径或绝对路径] 例如&#xff1a; // 使用相对路径&#xff0c;切换到postfix目录下 cd ../postfix// 使用绝对路径切换到/var/…

Linux操作系统实验1——地址转换

实验要求&#xff1a; 1.在内核中先申请一个页面&#xff0c;使用内核提供的函数&#xff0c;按照寻页的步骤一步步的找到物理地址。这些步骤就相当于我们手动的模拟了mmu的寻页过程。(paging_lowmem.c) 2.通过mmap将物理内存的数据映射到一个设备文件中。 通过访问该设备就可以…

美图商业化2.0:探寻多元增长曲线

【潮汐商业评论/原创】 数字化智能化浪潮正席卷而来。与此前的工业革命、信息技术革命一样&#xff0c;这场箭在弦上的“数智化革命”核心也在于技术的突破与应用。 今年以来&#xff0c;AIGC作为AI技术在内容生产领域的应用&#xff0c;迎来了全球大厂的争相布局&#xff0c…

tensorflow2.x多层感知机模型参数量和计算量的统计

当创建了一个多层感知机模型后&#xff0c;如何调用接口获取该模型的参数量和计算量&#xff1f;首先&#xff0c;打印出模型结构&#xff0c;可通过graphviz模块实现 # 加载模型 model keras.models.load_model(modelPath) tf.keras.utils.plot_model(model, to_filemodel.p…

linux ubuntu 如何自动定时备份数据库到服务器 mysql mysqldump cron

linux ubuntu 如何自动定时备份数据库到服务器 mysql mysqldump cron 一、需求描述 我有一个小日记应用&#xff0c;从 2019 年到 2022 年已经出现了两次比较严重的数据丢失的情况&#xff0c;一次是服务器错误&#xff0c;一次是人为。 所以我急切需要它能自己自动备份数据库…

基于servlet+jsp+mysql实现的java web校园车辆管理系统

一、项目简介 本项目是一套基于servletjspmysql实现的java web校园车辆管理系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严…

WebDAV之葫芦儿·派盘+Orgzly

Orgzly 支持WebDAV方式连接葫芦儿派盘。 给大家推荐一款Android 上的笔记与 todo 待办事项相融合的应用,它通过树形结构来记录笔记,并且只需要对笔记进行 TODO 标记就能变身任务管理,十分方便。 Orgzly是一款多功能的应用,更确切地说,它是一款 org 文件编辑器。Org 和 …

ArcGIS基础实验操作100例--实验12以线要素分割面要素(二)

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验12 以线要素分割面要素&#xff08;二&#xff09; 目录 一、实验背景 二、实验数据 …

C++ | 缺省参数

啊我摔倒了..有没有人扶我起来学习.... &#x1f471;个人主页&#xff1a;《CGod的个人主页》\color{Darkorange}{《CGod的个人主页》}《CGod的个人主页》交个朋友叭~ &#x1f492;个人社区&#xff1a;《编程成神技术交流社区》\color{Darkorange}{《编程成神技术交流社区》…

UDS - 10.2 DiagnosticSessionControl (10) service

来自&#xff1a;ISO 14229-1-2020.pdf 10.2.1 服务描述 DiagnosticSessionControl服务用于在服务器中启用不同的诊断会话。 诊断会话启用服务器中的一组特定诊断服务和/或功能。该服务提供了服务器可以报告数据链路层特定参数值的能力&#xff0c;这些参数值对于已启用的诊断…

Python语言快速入门下1

目录 一、函数 【函数定义与调用】 【形参与实参】 【return语句】 【变量作用域】 【可变长度参数】 二、lambda表达式 三、案例 【例题1】 【例题2】 【例题3】 【例题4】 【例题5】 一、函数 【函数定义与调用】 【例子】一个穷小子想娶富家之女&#xff0c;她…

【正点原子FPGA连载】第四章开发环境搭建摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第四章开发环境搭…

HPA与VPA

写在前面 语雀原文阅读效果更佳&#xff1a; 6、HPA与VPA 语雀 《6、HPA与VPA》 HPA与VPA 1、HPA 在前面的学习中我们使用了一个 kubectl scale 命令可以来实现 Pod 的扩缩容功能&#xff0c;但是这个是完全手动操作的&#xff0c;要应对线上的各种复杂情况&#xff0c;我…

ELK收集交换机日志

1、环境介绍 交换机&#xff1a;华为、思科、H3C Elasticsearch版本&#xff1a;7.13.3 kibana版本&#xff1a;v 7.13.3 logstash版本&#xff1a;7.17.8 2、ES集群配置 参考&#xff1a; https://blog.csdn.net/zyj81092211/article/details/118935274 3、kibana配置 参考 …

实战 | 使用图像处理改善OCR结果(详细步骤 + 源码)

导 读 本文主要介绍一个通过图像处理改善OCR识别结果的实例,并给出详细步骤和源码。 背景介绍 在很多情况下,文字识别会遇到困难。比如非单一的背景、杂讯干扰、文字部分缺失等。如下图所示: 我们希望识别图中的黑色文字(12-14),但背景较复杂且存在其他干扰,如果直接…

rabbitmq基础8——持久化、存储机制、ETS、队列结构、消息状态、内存告警、磁盘告警

文章目录一、持久化1.1 持久化对象1.1.1 交换器持久化1.1.2 队列持久化1.1.3 消息持久化1.2 总结要点二、存储机制2.1 存储方式2.2 存储文件2.2.1 队列索引.idx文件2.2.2 消息存储.rdq文件2.2.3 垃圾回收机制&#xff08;文件合并&#xff09;2.3 存储原理2.3.1 生产者消息写入…

基于图形化界面的方式创建vue2项目

前提是安装vue-cli npm i -g vue/cli 接下来使用vue ui 创建vue项目 vue ui 浏览器自动打开 点击创建&#xff0c;然后去到你想把创建的项目放到的位置 如果到不了那个位置&#xff0c;就window E 打开打开文件夹去到那个位置&#xff0c;之后再在文件夹的搜索中输入cmd打开命…

某农业学校 算法设计与分析-第7次实验综合

寻找数组中的第k小元素 【问题描述】给定一个长度为n的整数数组nums和整数k&#xff0c;输出数组中的第k小元素。要求不能对数组排序&#xff0c;使用分治的思想求解。 【输入形式】输入的第1行中有1个数字n&#xff0c;表示数组的长度&#xff1b;第2行中有n个数字&#xff0c…

Qt+C++ TCP发送接收信息客户端与服务端窗体

程序示例精选 QtC TCP发送接收信息客户端与服务端窗体 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC TCP发送接收信息客户端与服务端窗体>>编写代码&#xff0c;代码整洁&am…