unity知识点小结02
虚拟轴
虚拟轴就是一个数值在-11内的轴,这个数轴上重要的数值就是-1,0和1。当使用按键模拟一个完整的虚拟轴时需要用到两个按键,即将按键1设置为负轴按键,按键2设置为正轴按键。在没有按下任何按键的时候,虚拟轴的数值为0;在按下按键1的时候,虚拟轴的数值会从0-1进行过渡,而不是直接变成-1,;在按下按键2的时候,虚拟轴的数值会从0~1进行过渡
通过Project Settings设置轴的数量以及属性等
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AxisText : MonoBehaviour
{void Start(){}void Update(){//获取水平轴float horizontal = Input.GetAxis("Horizontal");float vertical = Input.GetAxis("Vertical");Debug.Log(horizontal + " " +vertical);//虚拟按键if (Input.GetButtonDown("Jump")) {//触发按键Debug.Log("空格");}}
}
通过按下上下左右键可改变其水平,垂直虚拟轴的值

手机,平板等设备实现触摸操作
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TouchText : MonoBehaviour
{void Start(){//开启多点触摸Input.multiTouchEnabled = true;}void Update(){//判断单点触摸if (Input.touchCount == 1) {//获取触摸对象Touch touch = Input.touches[0];//获取触摸位置Debug.Log(touch.position);//获取触摸阶段switch (touch.phase){case TouchPhase.Began://开始触摸break;case TouchPhase.Moved://触摸移动break;case TouchPhase.Stationary://触摸静止break;case TouchPhase.Ended://触摸结束break;case TouchPhase.Canceled://触摸因为其他事件打断break;}//判断多点触摸if (Input.touchCount == 2) {Touch touch1 = Input.touches[0];//获取第一个触摸点Touch touch2 = Input.touches[1];//获取第二个触摸点}}}
}
实时灯光是通过实时计算形成的灯光----性能消耗高
烘焙灯光是当灯光在场景中已经形成相应的效果我们可以把灯光删除,但是场景依然存在灯光效果


相机深度,如果场景里面同时存在多个相机,默认显示深度较高的那个相机拍摄到的物体,清除标志如果是仅深度那么就是将各个相机排到的物体叠加显示
通过脚本控制音乐播放
将音频文件放入项目并在物体脚本中设置相应的变量,将音频添加到脚本中

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MusicText : MonoBehaviour
{// 获取需要播放的音频片段public AudioClip mode;public AudioClip mode2;//播放器组件private AudioSource player;void Start(){//获取播放器组件player = GetComponent<AudioSource>();//设定播放的片段player.clip = mode;//实现循环播放player.loop = true;//控制音量player.volume = 0.5f;//开始播放player.Play();}void Update(){//按空格实现暂停和继续if (Input.GetKeyDown(KeyCode.Space)) {if (player.isPlaying){player.Pause();//暂停//player.Stop();//停止}else {player.UnPause();//继续播放//player.Play();//重新播放}}//按下按键播放其他音效if (Input.GetMouseButtonDown(0)) {player.PlayOneShot(mode2);//播放一次音效}}
}
视频播放
先将视频文件导入项目,在场景中穿件一个平面,并且穿件一个渲染器纹理,在将视频文件加到渲染器纹理中,在创建控制视频播放的脚本,将脚本添加到纹理器中。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;public class VudioText : MonoBehaviour
{private VideoPlayer player;//用于接收视频文件void Start(){player = GetComponent<VideoPlayer>();//接收视频文件}void Update(){if (Input.GetKeyDown(KeyCode.Space)) {if (player.isPlaying){player.Pause();}else {player.Play();}}}
}
控制人物移动
在编写脚本之前我们要向人物添加Character Controller组件
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MoveText : MonoBehaviour
{private CharacterController player;//创建角色控制器void Start(){player = GetComponent<CharacterController>();}void Update(){//获取水平轴float horizontal = Input.GetAxis("Horizontal");//获取垂直轴float vertical = Input.GetAxis("Vertical");//创建成一个方向向量Vector3 dir = new Vector3(horizontal,0,vertical);//让物体朝该方向移动//player.Move(dir); //该方法不存在重力效果player.SimpleMove(dir);}
}
碰撞及监听
要实现物体的碰撞效果,首先要将物体都设置碰撞器,此外还要确保碰撞的物体最少其中一个要有设置刚体组件

首先对碰撞物体进行脚本编写来监听碰撞事件 ,写者编写的碰撞为两物体碰撞之后产生爆炸,碰撞时销毁物体然后产生爆炸效果,一定时间后又将爆炸效果销毁
爆炸预设体挂载脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ColText : MonoBehaviour
{//创建碰撞之后产生效果的预设体public GameObject prefad;void Start(){}void Update(){}//监听发生爆炸 函数所带的元素为和自己发生碰撞的物体private void OnCollisionEnter(Collision collision){//产生碰撞创建碰撞效果物体 (创建预设体,设定预设体初始位置设置预设体初始旋转)Instantiate(prefad, transform.position, Quaternion.identity);//销毁自身Destroy(gameObject);}//持续碰撞中private void OnCollisionStay(Collision collision){}//结束碰撞private void OnCollisionExit(Collision collision){}
}
如果要销毁碰撞后产生的爆炸效果应该在单独编写脚本并且将脚本挂载到爆炸效果的预设体上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ExplorText : MonoBehaviour
{float timer = 0;void Start(){}// Update is called once per framevoid Update(){timer += Time.deltaTime;if (timer > 1) { Destroy(gameObject); }}
}
触发器
当某个物体到达某个位置或者触发到某个触发器之后会触发其他场景物体效果
写者将做一个将目标对象移到固定位置造成固定物体消失
触发器和碰撞的区别,设置触发器物体之间可以穿透,碰撞物体之间不能穿透
设置正方体以及长方体为触发器,胶囊移动到正方体位置长方体消失


为胶囊设置移动脚本,见上文
为正方体设置触发事件脚本
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class moveclo : MonoBehaviour
{void Start(){}void Update(){}//进入触发器 函数元素代表进入触发区的物体private void OnTriggerEnter(Collider other){//若有物体进入触发器,将名称为door的物体设为不显示GameObject door = GameObject.Find("door");if (door != null) { door.SetActive(false);}}//停留在触发器中private void nTriggerStay(Collider other){}//离开触发器private void OnTriggerExit(Collider other){}
}
效果展示


相关文章:
unity知识点小结02
虚拟轴 虚拟轴就是一个数值在-11内的轴,这个数轴上重要的数值就是-1,0和1。当使用按键模拟一个完整的虚拟轴时需要用到两个按键,即将按键1设置为负轴按键,按键2设置为正轴按键。在没有按下任何按键的时候,虚拟轴的数值为0…...
总线(四)Modbus总线 协议
文章目录Modbus技术背景Modbus OSI分布Moudbus分类通讯过程Moudbus协议通信过程以及报文解析RTU 与 ASCII 收发数据区别Modbus技术背景 Modbus是一种串行通信协议。 1971年,Modicon公司首次退出Modbus协议,ModbusRTU和Modbus ASCII诞生于此。 后来施耐德…...
Cadence Allegro 导出Component Report详解
⏪《上一篇》 🏡《总目录》 ⏩《下一篇》 目录 1,概述2,Component Report作用3,Component Report示例4,Component Report导出方法4.1,方法14,2,方法2B站关注“硬小二”浏览更多演示视频 1,...
程序猿成长之路之密码学篇-DES算法详解
DES的算法实现原理详情请见 https://blog.csdn.net/qq_31236027/article/details/128209185 DES算法密钥获取详情请见 https://blog.csdn.net/qq_31236027/article/details/129224730 编码工具类获取详见 https://blog.csdn.net/qq_31236027/article/details/128579451 DES算法…...
maven生命周期、阶段与默认绑定插件梳理
maven生命周期、阶段与默认绑定插件梳理 CSDN博客 码云源码 1.maven生命周期、阶段与默认绑定插件 序号生命周期lifecycle阶段phase默认绑定插件(链接官网)默认绑定插件(链接maven库)说明1cleancleanmaven-clean-pluginmaven-clean-plugin清理2.1buildvalidate——验证2.2b…...
【数学基础】
文章目录『 第1讲 高等数学预备知识 』1.1 函数的概念与特性函数的四种特性【 重要结论 】1.2 函数的图像直角坐标系下的图像极坐标系下的图像参数方程1.3 常用基础知识【 情报#1 】『 第2讲 数列极限 』2.1 引言2.2 求数列极限【 情报#2 】『 第1讲 高等数学预备知识 』 1.1 …...
网上电子商城的设计与实现
技术:Java、JSP等摘要:21 世纪以来,人类经济高速发展,人们的生活发生了日新月异的变化,特别是计算机的应用及普及到经济和社会生活的各个领域。在消费领域,网上购物已经成为大众所接受的一种新型的消费方式…...
2023thupc总结
A 大富翁 很有意思的题 ∑x∈A∑y∈B[x支配y]−∑x∈A∑y∈B[y支配x]−∑x∈Awx\sum_{x\in A}\sum_{y\in B}[x支配y]-\sum_{x\in A}\sum_{y\in B}[y支配x]-\sum_{x\in A}w_x∑x∈A∑y∈B[x支配y]−∑x∈A∑y∈B[y支配x]−∑x∈Awx ∑x∈A∑y[x支配y]−∑x∈A∑y[y支…...
【数据库】MySQL数据库基础
目录 1.数据库: 2.数据库基本操作 2.1 MySQL的运行原理 2.2显示数据库: 2.3创建数据库 2.4使用数据库 2.5删除数据库 3.常见的数据类型 3.1数值类型: 3.2字符型类型 3.3日期类型 4.表的操作 4.1创建表 4.2查看表 4.3删除表 5.汇总…...
grid了解
结构 <div class"grid"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div>&l…...
2023年全国最新工会考试精选真题及答案13
百分百题库提供工会考试试题、工会考试预测题、工会考试真题、工会证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 81.女职工委员会在()下开展工作。 A.企业工会委员会领导 B.企业工会委员会指导 …...
初识HTML技术
文章目录一、为什么学习前端?二、第一个HTML文件VSCode三. HTML元素四. HTML页面一、为什么学习前端? 我们作为一个后端程序员,为什么还要学习前端,因为我们的终极目的是实现web开发,搭建网站,网站 前端 后端 比如我们随便…...
我们为什么要用消息队列?
消息队列是系统设计中存在时间最长的中间件之一,从系统有通信需求开始,就产生了消息队列。 消息队列的使用场景 在日常系统设计与实现的过程中,下面3种场景会涉及到消息队列: 异步处理流量控制服务解耦 异步处理 典型的应用场…...
Linux进程控制
进程控制fork函数进程终止退出码常见的退出方式进程等待什么是进程等待,为什么要进程等待阻塞与非阻塞进程替换替换原理替换函数执行系统命令执行自己写的程序模拟实现简易的shellfork函数 fork函数是创建一个子进程,之前用过。 #include <unistd.h…...
PMP项目管理引论介绍
目录1. 指南概述和目的1.1 项目管理标准1.2 道德与专业行为规范2 基本要素2.1 项目2.2 项目管理的重要性2.3 项目、项目集、项目组合以及运营管理之间的关系2.3.1 概述2.3.2. 项目组合与项目集管理2.3.3. 运营管理2.3.4. 组织级项目管理和战略2.3.5. 项目管理2.3.6. 运营管理与…...
计算机视觉废钢堆提取问题
计算机视觉废钢堆提取问题 背景介绍 在钢铁炼制中,废钢是非常重要的原料,不同等级废钢对于钢成品影响很大,因此需要对废钢进行正确分类。某废钢料场中,卸料区域布置了多个摄像头,用于拍摄卸料场中废钢堆,…...
判断水仙花数-课后程序(Python程序开发案例教程-黑马程序员编著-第二章-课后作业)
实例5:判断水仙花数 水仙花数是一个3位数,它的每位数字的3次幂之和等于它本身,例如13 53 33 153,153就是一个水仙花数。 本实例要求编写程序,实现判断用户输入的3位数是否为水仙花数的功能。 实例目标 掌握Pytho…...
目标检测: 数据增强代码详解
1. 常见的数据增强 1.1 翻转图像 左右水平翻转 假设图片的宽高为w,h,bdbox左上角A坐标为(x1,y1), 右下角B为(x2,y2)。经过左右水平翻转后,bdbox的左上角A1坐标(w-x2,y1) ,右下角B1坐标为(w-x1,y2)左右水平翻转的代码实现如下:from PIL import Image image = Image.open(i…...
第二讲:ambari编译复盘,如何实现一次性成功编译ambari
上节课我们已经讲解了如何成功编译ambari源码,安装ambari-server rpm包以及成功部署ambari。本节课我们来复盘一下上节课的编译过程,以及思考如何实现一次性成功编译ambari。 要想一次性成功编译ambari,那么就需要将预置工作做好,比如: maven镜像源配置,node_moudle模块…...
Windows下jdk安装与卸载-超详细的图文教程
jdk安装 下载jdk 由于现在主流就是jdk1.8,所以这里就下载jdk1.8进行演示。官方下载地址:https://www.oracle.com/java/technologies/downloads/#java8-windows。 官方下载需要注册oracle账号,国内下载有可能速度慢,若不想注册账…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
自然语言处理——Transformer
自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...





