【Unity】入门

文章目录

  • 概述
  • 常用组件
  • 各类文件
  • 基础知识
    • 创建工程
    • 工程目录介绍
    • 五个窗口面板
    • 创建代码和场景
  • 脚本与编程
    • 鼠标的输入
    • 键盘的输入
    • 代码来操作组件
    • 获取物体API
    • 资源的使用API
    • 定时调用与线程
    • 向量的基本运算
    • 预制体与实例
  • 物理系统与组件
  • 案例实操作
  • 快捷键
  • 来源

Unity已广泛运用到各个领域:

  • 游戏(VR/AR…)
  • 影视
  • 工业仿生/模拟
  • 数字孪生
  • 全息投影
  • ······

概述

1、物体与空物体
物体(Game Object),其实是一个节点或容器。一般所谓的“物体”,即有形状的东西,对应的Mesh,网格信息代表了物体(形状)。

空物体(Empty Object),即空对象、空节点。空物体不可见(没有网格),但空物体也有坐标,可以移动。空物体常用于节点的组织和管理,或用于标记一个位置。

2、父子关系
父子关系,指两个物体之间的关系。在Hierarchy窗口中,拖动物体B,到物体A下,子物体会随着父物体一并移动。删除父物体时,子物体也会一并删除。子物体的坐标是相对于父物体的,即相对坐标。

3、世界坐标系与本地坐标系
Global,即世界坐标系。以世界中心为轴,6个方向代表了上、下、东、西、南、北。

Local,即本地坐标系。以物体自身为轴,6个方向代表了上、下、前、后、左、右。

Y轴称为Up,Z轴称为Forward,X轴称为Right。一般地,在建模软件里建模时,模型的正面与Z轴的方向一致。移动一个物体时,一般就是让这个物体向前运动,Forward。

4、轴心与几何中心
Pivot,即轴心。指一个物体的操作基准点。

Center,即几何中心。对于基本体来说,轴心点默认位于几何中心,但并不是所有物体的轴心都在几何中心点。

在Unity中,默认情况下显示的是Pivot操作模式,即轴心模式。另外一种模式是几何中心点模式。可选择切换物体在移动、旋转和缩放时,是以哪个点作为操作基准点。一般使用的是Pivot模式。

5、组件
Component,即组件。代表一个具体功能,例如,Light,光源。Directional Light,平行光源。Mesh Filter,网格过滤器,用来加载网格数据。Mesh Renderer,负责渲染。

常用组件

1、摄像机
Camera,即摄像机。负责拍摄游戏画面。摄像机的Z轴指向,即为拍摄方向。拍到的画面,呈现在Game窗口中,也就是玩家最终看见的画面。

调整摄像机的角度,可用两种方式。第一种,手动。手工移动、旋转摄像机,对准目标。第二种,GameObject->Align With View,与3D视图对齐。先在3D视图里摆好角度,此为观察者视角,然后选中Main Camera,执行Align With View。此时,摄像机视角与观察者视角完全相同。

2、Transform组件
Transform,即变换组件。物体的基本参数有Position,位置(相对坐标)、Rotation,旋转(欧拉角)、Scale缩放。Transform就是用来描述一个物体在空间中的位置坐标、旋转量和缩放量。所有物体都有Transform组件,而且不能被删除。

3、AudioSource组件
AudioSource组件,用于播放音乐/音效。创建一个物体,Add Component,Audio | Audio Source,将音乐文件(*.mp3/wav/aiff)拖到AudioSource.AudioClip属性。

各类文件

1、资源文件
Assets目录下的文件,即为资源。使用Meta来描述文件,每个资源文件/文件夹,都对应一个*.meta描述文件。

常见的类型有,模型文件Model(.fbx)、图片文件Texture(.jpg/png/tif/psd等)、音频文件AudioClip(.mp3/wav/aiff)、脚本文件Script(.cs)、材质文件Material(.mat)、场景文件(.unity)等等。

2、场景文件
场景文件*.unity,记录了场景中的节点数据。包含场景全局设置、节点、节点下挂载的组件、各组件的参数值等。一个场景往往代表一个关卡,可以创建多个不同的场景。

3、资源包
Unity中的资源包(Unity Package),即对Assets下的资源进行打包。选择一个资源文件,或一个目录。右键,Export Package,生成*.unitypackage资源包。

基础知识

创建工程

(1)点击Unity hub,新建即可
在这里插入图片描述
提示:若无法新建可能是未登录且没有激活许可证。操作如下

在这里插入图片描述

工程目录介绍

在新建完成后会在创建的目录下生成相关工程文件:

Assets: 资源(场景脚本模型)
Library: 库(系统)
Logs: 日志
Packages: 导入的包
ProjectSettings: 工程设置
Temp: 临时文件(文件过大可以删除部分缓存)
UserSettings: 设置

五个窗口面板

创建完成后会有5个窗口面板(红色方框)

在这里插入图片描述
Project:工程面板,存放工程的各种资源。包括:声音资源、模型资源、场景文件、材质、脚本等。

Hierarchy:层级面板,展示当前打开的场景里面有哪些东西。(里面的东西称为游戏物体)

Inspector:检视面板(或属性面板),查看一个游戏物体由哪些组件组成。
场景 -> 多个游戏物体 -> 多个组件

Scene:场景面板,显示当前场景的样子
鼠标中键:平移视角
鼠标右键:旋转视角(环顾四周),围绕自身旋转
Alt+鼠标左键:渲染视角,围绕当前视角前方位置

Game:游戏面板,场景运行的时候的样子
在这里插入图片描述

创建代码和场景

(1)Project > Assets 右键选择create 创建 C# script ,并重命名为“New Name”右键即可打开
在这里插入图片描述

(2)如果使用其他版本的编译器需要去单独指定 / 代码不提示也可以用此方法解决

Edit > Preferences > External Tools (附加工具)
在External Script Editor中有俩个选项
Open by file extension——根据文件后缀名采取相应工具打开
Microsoft Visual Studio 2019(这个是自己安装的编译器)
选择“Microsoft Visual Studio 2019”因为unity大多文件是C#
在这里插入图片描述
在这里插入图片描述

脚本与编程

鼠标的输入

旋转飞车实例:

void Update(){/*0:鼠标左键1:鼠标右键2:鼠标中键*/if (Input.GetMouseButtonDown(0)){Debug.Log("鼠标按下");rotateSpeed = 900f;moveSpeed = 300f;}if (Input.GetMouseButtonUp(0)){Debug.Log("鼠标抬起");rotateSpeed = 0f;moveSpeed = 0f;}this.transform.Rotate(0, rotateSpeed * Time.deltaTime, 0, Space.Self);this.transform.Translate(0, 0, moveSpeed * Time.deltaTime, Space.World);}

相关API:

  • GetMouseButtonDown:鼠标按下
  • GetMouseButtonUp:鼠标抬起
  • GetMouseButton:状态探测,只要鼠标按下,会一直调用。

旋转飞车实例2:

void Update(){/*0:鼠标左键1:鼠标右键2:鼠标中键*/if (Input.GetMouseButton(0)){rotateSpeed = 900f;moveSpeed = 300f;}else{rotateSpeed = 0;moveSpeed = 0;}this.transform.Rotate(0, rotateSpeed * Time.deltaTime, 0, Space.Self);this.transform.Translate(0, 0, moveSpeed * Time.deltaTime, Space.World);}

&一些补充的工具函数

//获取到鼠标点击的位置坐标
Vector3 mousePos = Input.mousePosition;
//获取到屏幕的尺寸
int screenWidth = Screen.width;
int screenHeight = Screen.height;//获取物体的屏幕坐标
Vector3 pos = this.transform.position;
Vector3 screenPos = Camera.main.WorldToScreenPoint(pos);

键盘的输入

常用API:

Input.GetKeyDown(key):按键事件,按下
Input.GetKeyUp(key):按键事件,抬起
Input.GetKey(key):案件状态,是否正被按下

代码来操作组件

操作AudioSource组件

//获取到AudioSource组件(泛型)
AudioSource audio = this.GetComponent<AudioSource>();
//播放
audio.Play();

引用别的组件:
应用场景:在主控结点中操作背景音乐的组件

public class MainLogic : MonoBehaviour
{//public GameObject bgmNode;//引用扬声器组件public AudioSource bgm;//引用脚本组件public FanLogic fan;//风扇转速public float rotateSpeed;void Start(){//AudioSource audio = bgmNode.GetComponent<AudioSource>();//audio.Play();bgm.Play();}void Update(){if(Input.GetMouseButtonDown(0)){rotateSpeed = 800;//旋转代码在FanLogic脚本下 }}
}

获取物体API

案例:主控结点下找到无人机目录下的旋翼对象,并调用它的脚本组件

//主控结点
//方式二:(在Unity中拖入)
public GameObject wingNode;
//方式一:
void Start(){GameObject node = GameObject.Find(无人机/旋翼);RotateLogic rotateLogic = node.GetComponent<RotateLogic>();
}

获取游戏节点的父级与子级:

//获取当前组件的父结点与父方位
Transform parent = this.transform.parent;
GameObject parentNode = this.transform.parent.gameObject;//获取子结点的方位
//方式一:通过foreach遍历
foreach (Transform child in transform)
{Debug.Log("子物体" + child.name); //child
}//方式二:通过GetChild()索引API
Transform child = this.transform.GetChild(0);//方式三:通过名字查找子项
Transform child = this.transform.Find("子项名或路径");

给物体设置新的父级:

this.transform.SetParent(null/GameObject);

切换物体的显示状态:

Transform child = this.transform.Find("xxx");
if(child.gameObject.activeSelf)
{//隐藏child.gameObject.SetActive(false);
}
else
{//显示child.gameObject.SetActive(true);
}

资源的使用API

用户按下A,D键播放音效成功与失败

//成功音效
public AudioClip audioSuccess;
//失败音效
public AudioClip audioFail;void Update()
{if (Input.GetKeyDown(KeyCode.A)){AudioSource audio = GetComponent<AudioSource>();audio.PlayOneShot(audioSuccess);}if (Input.GetKeyDown(KeyCode.D)){AudioSource audio = GetComponent<AudioSource>();audio.PlayOneShot(audioFail);}
}

制作随机音乐盒程序

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class MusicBox : MonoBehaviour
{public AudioClip[] songs;// Start is called before the first frame updatevoid Start(){if (songs == null || songs.Length == 0){Debug.Log("当前歌单列表为空!");}}// Update is called once per framevoid Update(){if (Input.GetKeyDown(KeyCode.Space)){NextSong();}}private void NextSong(){//随机播放int randomIndex = Random.Range(0, songs.Length);//取到AudioSource组件AudioSource audio = GetComponent<AudioSource>();audio.clip = this.songs[randomIndex];audio.Play();Debug.Log("正在播放第" + (randomIndex+1) + "首歌,歌名为:" + audio.clip.name);}
}

定时调用与线程

Unity是单线程核心,暂时不必考虑线程,调度,并发。

//延迟调用API
this.Invoke("函数名",延迟时间);//循环调用API
this.InvokeRepeating("函数名",循环时间间隔);//查看当前线程的ID
int ThreadId = Thread.CurrentThread.ManagedThreadId;//判断函数是否正在被调用
bool isInvoking = IsInvoking("函数名");
//取消该函数的调用
CancelInvoke("函数名");
//取消当前脚本所有Invoke调用
CancelInvoke();

向量的基本运算

//定义一个三维向量
Vector3 v1 = new Vector3(3,0,4);
//求向量的模长
float length = v1.magnitude;
//向量标准化
Vector3 v2 = v1.normalized;//物体运动的优化写法
//定义一个三维向量来表示不同方向的速度
public Vector3 speed;//优化物体移动写法
void Update()
{this.transform.Translate(speed * Time.deltaTime,Space.Self);
}

预制体与实例

通过API创建实例:

  • 首先准备子弹的预制体prefab
  • 添加火控脚本 FireLogic.cs
//子弹预制体
public GameObject bulletPrefab;
//子弹目录
public Transform bulletFolder;
//子弹出生点
public Transform firePoint;
//炮塔的引用(为了获取到炮塔发射子弹的方向)
public Transform cannon;void Update()
{//创建实例GameObject node = Object.Instantiate(bulletPrefab,bulletFolder);//指定出生点node.transform.position = this.firePoint.position;//指定初始角度node.transform.localEulerAngles = this.cannon.eulerAngles;//子弹脚本参数的设置(子弹飞行速度)node.GetComponent<BulletLogic>().setSpeed(0.5f);
}
  • 销毁子弹
//销毁自身结点的API
Object.Destroy(this.gameObject);
//注意不要写错,写为⬇,该写法是销毁组件,而并非结点
Object.Destroy(this);

物理系统与组件

Physic—>RigidBody:刚体组件
常用属性:

  • Mass:质量
  • Drag:摩擦力
  • AngularDrag:角摩擦力


Physic—>Collider:碰撞模型
常用类型:BoxCollider,SphereCollider

物理材质Phsicas Material:

  • 在Assets中添加一个Physics Material
  • 在里面设置全局性的摩擦力Friction,弹性系数等等

碰撞检测
实现 碰撞检测的步骤:

  • RigidBody–>is Kinematic 勾选标记为 运动学刚体
  • Collider–>is Tragger 勾选 标记为触发器
  • 挂一个脚本,添加消息函数⬇
void OnTriggerEnter(Collider other)
{//拿到被碰撞物体的名字string name = other.name;//销毁被碰撞物体Object.Destroy(other.gameObject);Object.Destroy(this.gameObject);
}

案例实操作

3D 射击游戏实战

  • 1.导入模型

  • 2.更改天空盒

    Window—>Rendering—>lighting—>environment—>Skybox Material

  • 3.添加子弹,模型,材质,脚本等

  • 4.给子弹和怪兽添加碰撞检测

  • 5.子弹的自动发射,自毁与预制体

  • 6.玩家的按键操作

  • 7.怪兽的走位移动

  • 8.怪兽生成器

  • 9.子弹和爆炸特效

源码展示:
子弹BulletLogic:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/*子弹相关逻辑:准备工作:子弹的预制体以及导入工程1.子弹的Z轴移动2.子弹的自毁3.子弹的特效导入*/
public class BulletLogic : MonoBehaviour
{//设置子弹的运动速度[Tooltip("子弹飞行速度")]public Vector3 speed;[Tooltip("子弹飞行时长")]public float lifetime = 5f;[Tooltip("子弹爆炸特效预制体")]public GameObject explosionEffect;// Start is called before the first frame updatevoid Start(){Invoke("SelfDestroy", lifetime);}// Update is called once per framevoid Update(){this.transform.Translate(speed, Space.Self);}//触发器函数private void OnTriggerEnter(Collider other){Debug.Log("发生碰撞了");//如果碰撞到怪兽if (!other.name.StartsWith("怪兽")) return;Destroy(this.gameObject);Destroy(other.gameObject);//创建一个爆炸粒子特效对象GameObject node = Object.Instantiate(explosionEffect,null);node.transform.position = this.transform.position;//当粒子特效播放完成时自动销毁}//子弹自毁函数private void SelfDestroy(){Debug.Log("子弹已自毁");Destroy(this.gameObject);}
}

玩家PlayerLogic:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/*玩家相关逻辑:准备工作:导入玩家模型的预制体资源1.设置子弹发射点,并实现从该点定时发射子弹2.添加玩家的按键控制移动*/
public class PlayerLogic : MonoBehaviour
{//预制体资源public GameObject bulletPrefab;//子弹生成目录public Transform bulletFolder;//子弹发射点public Transform firePoint;//子弹发射间隔public float fireInterval;//玩家移动速度public float playerSpeed;// Start is called before the first frame updatevoid Start(){InvokeRepeating("fire", fireInterval, fireInterval);}// Update is called once per framevoid Update(){float speedX = 0;//按键控制if (Input.GetKey(KeyCode.A)){speedX = -playerSpeed;}else if (Input.GetKey(KeyCode.D)){speedX = playerSpeed;}else{speedX = 0;}this.transform.Translate(speedX * Time.deltaTime, 0, 0, Space.Self);}//发射子弹的函数private void fire(){//生成一个子弹实例GameObject bullet = Object.Instantiate(bulletPrefab, bulletFolder);//设置子弹的出生点bullet.transform.position = this.firePoint.position;}
}

怪兽EnemyLogic:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/*怪兽相关逻辑:准备工作:导入怪兽的预制体进工程1.水平速度的蛇皮走位逻辑2.前后速度的固定逻辑*/
public class EnemyLogic : MonoBehaviour
{//水平速度float speedX = 0;//前后速度public float speedZ;// Start is called before the first frame updatevoid Start(){//重复周期调用蛇皮走位InvokeRepeating("move", 0.1f, 0.5f);}// Update is called once per framevoid Update(){this.transform.Translate(speedX * Time.deltaTime, 0, speedZ * Time.deltaTime, Space.Self);}//怪兽的蛇皮走位private void move(){//设置一个随机速度数组float[] speed = { -5, -10, -20,-30, 5, 10, 20 ,30};//随机选取一个速度作为水平速度int rnum = Random.Range(0, speed.Length);//设置速度speedX = speed[rnum];}
}

怪兽生成器EnemyCreator:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;/*怪兽生成器相关逻辑:1.定时生成怪兽即可*/
public class EnemyCreator : MonoBehaviour
{//要创建的怪兽预制体public GameObject enemyPrefab;//创建怪物间隔时长public float enemyInterval = 0.5f;// Start is called before the first frame updatevoid Start(){InvokeRepeating("creatEnemy", 0.1f, enemyInterval);}// Update is called once per framevoid Update(){}private void creatEnemy(){GameObject node = GameObject.Instantiate(enemyPrefab, this.transform);node.transform.position = this.transform.position;//调整随机出生点int rnum = Random.Range(-50, 50);node.transform.Translate(rnum, 0, 0, Space.Self);}
}

快捷键

command+N 新建场景

command+O 打开场景

command+S 保存场景

Shift + command + S 场景另存为

Shift + command + B 编译设置

command + B 编译并运行

command + z Undo 撤销

shift + command + z Redo 撤销

command + X Cut剪切

command + C Copy拷贝

command + V Paste粘贴

command + D Duplicate 复制

shift + Del Delete 删除

command + F 查找

command + A 全选

command + P Play播放

Shift + command + P Pause暂停

Alt + command + P step停止

command + R Refresh 刷新

Shift + command + N 新建空GameObject

Alt + command + F Move to View 移动到视图

Shift + command + F Align with View 视图对齐

command + 1 选择Scene视图

command + 2 选择Game视图

command + 3 选择Inspector面板

command + 4 选择Hierarchy 视图

command + 5 选择Project 视图

command + 6 打开Animation动画窗口

command + 7 打开Profilter分析器

command + 8 打开Particle Effect 粒子窗口

command + 9 打开Asset store资源商店

command + 0 打开Asset server资源服务器

shift + command + C 打开Console 控制台

Q 切换平移模式

W 切换移动模式

E 切换旋转模式

R 切换缩放模式

Z Pivot Mode toggle 轴点模式切换

X Pivot Rotation toggle 轴点旋转切换

一、变换工具 6个

快捷键Q–Hand(手形)工具 可以平移整个Scene视图

快捷键W–Translate(移动)工具 移动所选择的游戏对象

快捷键E–Rotate(旋转)工具 按任意角度旋转游戏对象

快捷键R–Scale(缩放)工具 缩放选中的游戏对象

快捷键T–横切面工具 可以沿着横截面缩放,沿着横截面的中心点旋转

快捷键Z–Center工具 改变游戏对象的轴心点

快捷键X–Local工具 改变物体的坐标

二、播放控件 3个

Ctrl+P–播放按钮 播放/运行,对游戏场景进行预览

Ctrl+Shift+P–暂停按钮 暂停/中断,停止预览

Ctrl+Alt+P–逐帧播放按钮 单帧进行预览

以上一、二为工具栏的快捷键

三、File(文件)菜单快捷键 6个

Ctrl+N–New Scene 新建场景

Ctrl+O–Open Scene 打开场景

Ctrl+S–Save Scene 保存场景

Ctrl+Shift+S–Save Scene as 场景另存为

Ctrl+Shift+B–Build Setings 发布设置

Ctrl+B–Build & Run 发布并运行

四、Edit(编辑)菜单 11个

(在Mac机中,用command键替换Ctrl,以下出现的Ctrl均同)

Ctrl+Z–Undo Selection Change 撤销上一步操作

Ctrl+Y–Redo 反撤销(mac机为command+Shift+Z)

Ctrl+X–Cut 剪切

Ctrl+C–Copy 复制

Ctrl+V–Paste 粘贴

Ctrl+D–Duplicate 复制并粘贴

Shift+Del–Delete 删除(mac机位command+Del)

快捷键F–Frame Selected 居中并最大化当前选中的物体

Ctrl+F–Find 搜索,按照名称查找物体

Shift+F–Lock view to Selected 锁定搜索到的物体

Ctrl+A–Select All 选择全部

五、Assets菜单快捷键 1个

Ctrl+R–Refresh 刷新场景

六、GameObject菜单快捷键 5个

Ctrl+Shift+N–Create Empty 创建一个空的游戏对象

Alt+Shift+N–Create Empty Child 创建一个空的子物体

Ctrl+Alt+F–Move to New 移动游戏对象到视图的中心点

Ctrl+Shift+F–Align With View

Alt+Shift+A–Toggle Active Stave

七、Component菜单快捷键

Ctrl+Shift+A–add 添加组件

八、切换视图快捷键 12个

Ctrl+Tab切换–next Windows 下个窗口

Ctrl+Shift+Tab切换–Previous Windows 上个窗口

Ctrl+1切换–Scene视图

Ctrl+2切换–Game视图

Ctrl+3切换–Inspector视图

Ctrl+4切换–Hierarchy视图

Ctrl+5切换–Project视图

Ctrl+6切换–Animation视图

Ctrl+7切换–Profiler视图

Ctrl+9切换–Asset Store Unity资源商店

Ctrl+0切换–Asset Server 资源服务器

Ctrl+Shift+C切换–Console 控制台

以上三~八为菜单栏快捷键

九:操作Scene视图的快捷键

Alt+鼠标左键–旋转视图

Alt+鼠标右键–放大缩小视图

Alt+鼠标中键–移动视图

鼠标右键+w/s/a/d–向上/下/左/右 飞行浏览视图

鼠标右键+w/s/a/d+Shift–向上/下/左/右 快速飞行浏览视图

来源

unity入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
【Unity篇】Unity入门介绍
Unity3D入门基础知识
Unity3D入门篇

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

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

相关文章

如何在Windows上搭建WebDAV服务并通过内网穿透实现公网访问

文章目录 前言1. 安装IIS必要WebDav组件2. 客户端测试3. 使用cpolar内网穿透&#xff0c;将WebDav服务暴露在公网3.1 安装cpolar内网穿透3.2 配置WebDav公网访问地址 4. 映射本地盘符访问 前言 在Windows上如何搭建WebDav&#xff0c;并且结合cpolar的内网穿透工具实现在公网访…

结构型模式 | 适配器模式

一、适配器模式 1、原理 适配器模式&#xff08;Adapter&#xff09;&#xff0c;将一个类的接口转换成客户希望的另外一个接口&#xff0c;使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配器模式主要分为三类&#xff1a;类适配器模式、对象适配器模式、接口…

【ARM Cortex-M 系列 5 -- RT-Thread renesas/ra4m2-eco 移植编译篇】

文章目录 RT-Thread 移植编译篇编译os.environ 使用示例os.putenv使用示例python from 后指定路径 编译问题_POSIX_C_SOURCE 介绍编译结果 RT-Thread 移植编译篇 本文以瑞萨的ra4m2-eco 为例介绍如何下载rt-thread 及编译的设置。 RT-Thread 代码下载&#xff1a; git clone …

T2I-Adapter: 让马良之神笔(扩散模型)从文本生成图像更加可控

文章信息 单位&#xff1a;北大深张健团队&#xff0c;腾讯ARC lab 源码: https://github.com/TencentARC/T2I-Adapter 图1. 插个DXL的渲染图&#xff0c;这么真实的光感&#xff0c;感觉PS都可以被取代了 目录 文章信息前言一、介绍二、相关工作1.图像合成与转换2 扩散模型3 适…

Deployment Controller详解(下)

上一篇在《Deployment Controller详解&#xff08;上&#xff09;》中介绍了Deployment Controller 的创建、更新和回滚。了解了这三个功能&#xff0c;基本上也就懂得了大厂PaaS平台中服务的灰度升级、失败回滚等操作是如何实现的了。 接下来本文会介绍Deployment Controller…

引领汽车营销新趋势,3DCAT实时云渲染助力汽车三维可视化

当前&#xff0c;汽车产业发展正从电动化的上半场&#xff0c;向智能化的下半场迈进。除了车机技术体验的智能化之外&#xff0c;观车体验的智能化也不容忽视。 这是因为&#xff0c;随着数字化、智能化、个性化的趋势&#xff0c;消费者对汽车的需求和期待也越来越高&#xf…

CSS overflow-anchor

overflow-anchor 为了认识这个属性, 我们需要先看一种常见的现象. 即在网页加载中, 图片常常比文字加载更慢, 这样图片加载完成后可能会将文字向下顶. 比如下图演示 <div class"overflow"><img id"bg" src"" height"150" al…

【NI-RIO入门】使用其他文本语言开发CompactRIO

1.FPGA 接口Python API Getting Started — FPGA Interface Python API 19.0.0 documentation 2.FPGA接口C API FPGA 接口 C API 是用于 NI 可重配置 I/O (RIO) 硬件&#xff08;例如 NI CompactRIO、NI Single-Board RIO、NI 以太网 RIO、NI FlexRIO、NI R 系列多功能 RIO 和…

STM32的以太网外设+PHY(LAN8720)使用详解(7):以太网数据接收及发送测试

0 工具准备 1.野火 stm32f407霸天虎开发板 2.LAN8720数据手册 3.STM32F4xx中文参考手册 4.Wireshark1 以太网数据接收测试 1.1 以太网数据接收测试&#xff08;轮询&#xff09; 我们在主循环内轮询RX DMA描述符标志位查看是否接收到了数据&#xff0c;如果接收到了则将数据…

校园助手示例安卓、ios基于Flutter,小程序基于mpvue,前端基于VueJS,后端Flask(附源码)

warning master分支正在经历大量的重写&#xff0c;请至v4分支查看可运行的版本。 <div align"center"> <img src"logo.png" width "200" height "200" alt"SHUhelper" aligncenter /> <h3>SHUh…

网络通信--深入理解网络和TCP / IP协议

计算机网络体系结构 TCP/IP协议族 TCP / IP 网络传输中的数据术语 网络通信中的地址和端口 window端查看IP地址和MAC地址&#xff1a;ipconfig -all MAC层地址是在数据链路层的&#xff1b;IP工作在网络层的 MAC是48个字节&#xff0c;IP是32个字节 在子网&#xff08;局域…

Ubuntu 常用命令之 scp 命令用法介绍

&#x1f4d1;Linux/Ubuntu 常用命令归类整理 SCP&#xff08;Secure Copy&#xff09;是一种基于SSH&#xff08;Secure Shell&#xff09;的文件传输协议&#xff0c;它可以在本地和远程主机之间安全地复制文件。在Ubuntu系统下&#xff0c;我们可以使用scp命令来实现这个功…

java-sec-code中rmi

java-sec-code中rmi 暂时没有搞懂原理&#xff0c;这里只说明利用方法 java-sec-code 作者给出的是使用ysoserial进行利用 测试环境搭建 docker环境下&#xff0c;1099端口默认不开启&#xff0c;这里使用idea运行org.joychou.RMI.Server即可 个人电脑java环境分为1.8.381 1.8.…

Spring核心源码解析

Spring 框架核心源码 1、使用 Spring 框架 2、反射机制 IoC 控制反转 Inverse of Control 创建对象的权限&#xff0c;Java 程序中需要用到的对象不再由程序员自己创建&#xff0c;而是交给 IoC 容器来创建。 IoC 核心思想 1、pom.xml <dependencies><!-- 引入 …

pytorch张量的创建

张量的创建 张量&#xff08;Tensors&#xff09;类似于NumPy的ndarrays &#xff0c;但张量可以在GPU上进行计算。从本质上来说&#xff0c;PyTorch是一个处理张量的库。一个张量是一个数字、向量、矩阵或任何n维数组。 import torch import numpy torch.manual_seed(7) # 固…

机器学习-数学学习汇总

***I数学只是一个工具&#xff0c;会使用&#xff0c;能解决问题就可以了&#xff0c;精确例如到3.14够用就可以了*** 微积分作用&#xff1a;解决非线性问题 学习&#xff1a;27分。 高中数学&#xff1a; 1.高中数学所有知识点表格总结&#xff0c;高中知识点一个不漏&am…

RLHF对LLM泛化性和多样性的影响

paper&#xff1a;Understanding the effects of RLHF on LLM generalisation and diversity 0 背景知识 标准的RLHF finetuning pipeline一般包含3个阶段&#xff1a; supervised fine-tuning (SFT)。对预训练的模型进行用language modeling的方式进行微调。reward modelin…

【湖仓一体尝试】MYSQL和HIVE数据联合查询

爬了两天大大小小的一堆坑&#xff0c;今天把一个简单的单机环境的流程走通了&#xff0c;记录一笔。 先来个完工环境照&#xff1a; mysqlhadoophiveflinkicebergtrino 得益于IBM OPENJ9的优化&#xff0c;完全启动后的内存占用&#xff1a; 1&#xff09;执行联合查询后的…

AI时代Python量化交易实战:ChatGPT引领新时代

文章目录 《AI时代Python量化交易实战&#xff1a;ChatGPT让量化交易插上翅膀》关键点内容简介作者简介购买链接 《AI时代架构师修炼之道&#xff1a;ChatGPT让架构师插上翅膀》关键点内容简介作者简介 赠书活动 《AI时代Python量化交易实战&#xff1a;ChatGPT让量化交易插上翅…

Python深度学习028:神经网络模型太多,傻傻分不清?

文章目录 深度学习网络模型常见CNN网络深度学习网络模型 在深度学习领域,有许多常见的网络模型,每种模型都有其特定的应用和优势。以下是一些广泛使用的深度学习模型: 卷积神经网络(CNN): 应用:主要用于图像处理,如图像分类、物体检测。 特点:利用卷积层来提取图像特…