IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Unity操作笔记1 -> 正文阅读

[游戏开发]Unity操作笔记1

Unity

Scene场景面板

  • 提供设计游戏界面的可视化面板
  • 常用快捷键
  1. 按下鼠标拖动场景,滑动滚轮缩放场景。
  2. Q:切换移动按钮 W:上下左右按钮 E:旋转按钮 R:缩放按钮
  3. 鼠标右键选择场景,点击左上方小手按钮后,通过左键移动场景。
  4. 点击右键同时按下WSADQE可以实现场景漫游。
  5. 在Scene面板选中物体后按F键,或者在Hierarchy面板双击物体,可将物体设置为场景视图的中心。
  6. 按照alt键同时通过鼠标左键围绕某物体选择场景,鼠标右键缩放场景。
  7. 按住v进行顶点吸附,两个物体拼接在一起。
  8. 轴心点不同,放大缩小旋转不一样。Center or Pivot
  9. Ctrl + N 建立新场景
  10. 插件代码对于父类进行操作,创建空容器做父类,将组件拉入空容器。(因为组件多且杂,容易更改)

相机

  • 天空盒子 SkyBox:围绕整个场景的包装器,用于模拟天空的材质。常用:6Sided , Procedural

  • 添加天空盒方法:摄像机添加组件Skybox,方法二:Window-Lighting-Environment Lighting --Skybox–可作为反射源将天空色彩反射到场景中

    (2019为:Window–Rendering–Lightning settings)

  • 摄像机快速定位当前视角 Ctrl+shift+f

  • 地图相机最好选择2d模式!在这里插入图片描述

    深度必须比主摄像机大,然后选择在这里插入图片描述
    显示地图,单单只有地图

  • 地图相机看地图人物头顶加一个平面进行层设计,然后显示平面层,人物层不显示,而看人物摄像机则选择屏蔽平面设计!在这里插入图片描述

渲染管线

在这里插入图片描述

渲染剔除:当物体被送进渲染流水线之前,摄像机视角内看不到的物体进行剔除,从而减少了每帧渲染数据量,提高渲染性能。适用于密集物体被遮挡的场景!!!!

LOD:多细节层次Levels of Detail,根据物体模型的节点在显示环境终所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。(即距离摄像机越近,渲染越细,物体看起来越精细)

unity特有的鼠标控制的函数

? void OnMousXXX(){}

//鼠标点击物体时执行
private void OnMouseDown()
{
    print("OnMouseDown");
}
//鼠标在物体上点击但没有抬起时一直执行
private void OnMouseDrag()
{
    print("OnMouseDrag");
}
 
//鼠标点击物体后抬起时执行
private void OnMouseUp()
{
    print("OnMouseUp");
}
 
//鼠标点击物体后抬起时执行(需要在原物体抬起时触发)
private void OnMouseUpAsButton()
{
    print("OnMouseUpAsButton");
}
 
//鼠标移到物体上面执行
private void OnMouseEnter()
{
    print("OnMouseEnter");
}
 
//鼠标悬浮在物体上时一直执行
private void OnMouseOver()
{
    print("OnMouseOver");
}
 
//鼠标移出物体时执行
private void OnMouseExit()
{
    print("OnMouseExit");
}

unity怪物控制AI之一

定义一个三维向量用于确定怪物和Player直接的位置关系也就是Player对于怪物在哪个方向是。用Player的 坐标减去怪物坐标即可。

定义一个步数:步数等于转向速度*持续时间(每一帧)。(角速度 * 时间= 新角度)再定义一个新三维向量,新向量的方向在怪物当前的面向和怪物与Player确定的向量之间,新向量的具体方向由步数对应的角度(角速度 * 时间= 新角度)决定。让怪物的面向等于刚刚得到的新三维向量。怪物速度等于其面向 * 速度 * 持续时间。具体实现例子如下:

void Update()
{
    //追踪
    Vector3 targetdir = player.position - transform.position;
    float step = rotspeed * Time.deltaTime;
    Vector3 newdir = Vector3.RotateTowards(transform.forward, targetdir, step, 0.0F);
    //此函数作用是生成一个四元数表示的三维朝向,然后可以直接把这个朝向赋给游戏对象来变更其朝向
    transform.rotation = Quaternion.LookRotation(newdir);
    transform.Translate(Vector3.forward * Time.deltaTime * speed);

}

public static Vector3.MoveTowards(Vector3 current,Vector target,float maxDistanceDelta)
current: 当前位置
target: 将要移动到的位置
maxDistanceDelta: 移动速度

public static Vector3.RotateTowards(Vector3 current, Vector3 target, float maxRadiansDelta, float maxMagnitudeDelta)
current: 当前位置
target: 将要移动到的位置
maxRadiansDelta: 角速度
maxMagnitudeDelta: 变换幅度

unity碰撞判定逻辑

OnTriggerEnter函数是每一帧进入碰撞体积的物体都会予以判定。通过标签判断碰撞需要销毁的物体,不发生销毁就返回空值即可。

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 11:09:07  更:2021-09-07 11:09:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/21 19:50:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码