unity 3D 自学笔记

刚开始

创建一个正方体

在这里插入图片描述窗口布局
在这里插入图片描述
恢复默认窗口
在这里插入图片描述
在这里插入图片描述

场景

默认场景中只有一个主摄像机和平行光源

3D物体

  • Duplicate 复制
  • Delete 删除

3D视图

  • 导航器 Gizmo,表示世界坐标的方向
  • 栅格 Grid,表示XZ坐标平面
  • 天空盒 Skybox , 表示游戏世界的背景

在这里插入图片描述

视角中心

出生点:添加一个新物体,物体位于视图中心
想绕着一个物体旋转,按下F键

透视与正交

正交视图,又称为等距视图,物体显示与距离无关
在这里插入图片描述
对齐用的
有些角度看球体就像椭圆一样,这种现象叫透视畸变,改变相机广角可以减少
在这里插入图片描述

3D物体

  • Cube 正方体
  • Sphere 球体
  • Capsule 胶囊体
  • Cylinder 圆柱体
  • Plane 平面

Unity尺寸单位 约定是1米
在这里插入图片描述
按下ctrl旋转的时候,一个增量是15°
在这里插入图片描述
快捷键w、E、R切换

操作

ctrl + D 复制物体
激活或禁用物体
在这里插入图片描述

AF小插件

AF扩展插件,AfSimpleExtension.cs

网格

网格Mesh 储存了模型的形状
在这里插入图片描述

材质

  • 颜色
  • 金属、非金属
  • 光滑、粗糙
  • 透明、半透明、不透明
  • 凹陷、凸起

创建材质
右键->create->Material

在这里插入图片描述

纹理

在这里插入图片描述
在这里插入图片描述
所有平面都是正面可见背面透明的

FBX使用

  • Mesh网格,定义物品形状
  • Material材质,定义表面的光学特性
  • Texture贴图,定义表面的像素颜色

在这里插入图片描述
** 跳转到模型文件**

贴图文件

  • 有的模型需要贴图文件
  • 贴图文件的路径是约定好的
  • 与fbx相同目录,或者同级Textures目录

材质

  • 有的模型定义了多个材质
  • 在Materials属性中定义了一个数组
    在这里插入图片描述
    重映射
    在这里插入图片描述
    材质替换

资源文件

常见类型

  • 模型文件 Model(*.fbx)
  • 图片文件Texture(*.jpg/png/psd/tif)
  • 音频文件AudioClip(*.mp3/wav/aiff)
  • 脚本文件Script(*.cs)
  • 材质文件*.map,场景文件*.unity …
  • 描述文件 *.meta

在文件夹窗口查看 Show in Explorer
复制资源ctrl + D

场景

一个场景代表一个关卡,可以创建多个场景
包含

  • 场景全局设置
  • 节点
  • 节点下的组件
  • 每个组件的参数

资源包

资源包Unity Package,即对Assets下的资源打包
演示:

  • 选择一个资源文件,或者一个目录
  • 右键,Export Package…
  • 生成*.unitypackage资源包

unity资源商店

父子节点

空节点

Global 与 Local

  1. Global 即世界坐标系
  2. Local,即本地坐标系
    y轴成为up,z轴称为forward,x轴称为right

Pivot 与 Center

pivot 轴心模式
Center几何中心点

组件

组件Component,代表一个功能
例如:

  • Light,光源
  • Mesh Filter,网格过滤器
  • Mesh Renderer,网格渲染器

AudioSource组件

AudioSource组件,用于播放音乐、音效

  1. 添加一个音乐文件,*.mp3/wav/aiff
  2. 创建一个物体
  3. ADD Component,Audio|Audio Source
  4. 将音乐文件拖到AudioSource.AudioClip属性
  5. 在3D窗口上方,选Toggle Audio On

相机

摄像机 Camera负责拍摄游戏画面

  1. 调整窗口布局,Scence/Game并排显示
  2. 选中摄像机,观察镜头范围
  3. 摄像机Z轴指向,即为拍摄方向
  4. 拍到的画面,呈现在Game窗口中

将摄像机到观察者视角 Align with View

脚本

脚本 Script,用于驱动游戏逻辑
在SimpleLogic.cs中获取当前物体

  1. this , 当前物体
  2. this.gameObject , 当前物体
  3. this.gameObject.name,当前物体名字
  4. this.gameObject.transform,当前物体下的Transform组件,为了简化书写,也可以写作this.transfrom 。

获取坐标脚本

 void Start()
    {
        
        GameObject obj = this.gameObject;
        string objname=obj.name;
        Debug.Log(objname+"名字");
        
        Transform tr=this.gameObject.transform;
        Vector3 pos=this.gameObject.transform.position;
        Debug.Log("坐标"+pos.ToString("F3"));
    }

物体坐标

  • transform.position,世界坐标
  • transform.localPosition,本地坐标
    为了简化写法 this.transform.position
    设置物体坐标
this.transform.localPosition=new Vector3(1.5f,0,2.0f);

其中f是float型的数值,书写以f结尾

播放模式

  • Edit Mode编辑模式
  • Play Mode,播放/运行/ 模式

帧更新

Frame,一个游戏帧
FrameRate,帧率
FPS

帧率观察

  • Time.time,游戏时间
  • Time.deltaTime,据上次更新的时间差

设置一个近似帧率
Application.targetFrameRate=60;
尽量设置一个60帧运行

移动

   void Update()
    {
        Vector3 vector3=this.transform.localPosition;
        vector3.x+=0.01f;
        this.transform.localPosition=vector3;
    }

匀速运动
deltaTime,让物体匀速运动

float speed=3;
        float distance= speed*Time.deltaTime;
        Vector3 vector3=this.transform.localPosition;
        vector3.x+=distance;
        this.transform.localPosition=vector3;

相对移动

  • transform.Translate(),可以实现物体的运动
  • transform.Translate(dx,dy,dz,space)

其中第四个参数:

  • Space.World相对于世界坐标系
  • Space.Self相对于自身坐标系

1获取目标物体
GameObject flag=GameObject.Find(“红旗”);
2转向目标
this.transform.LookAt(flag.transform);
3向前运动
this.transform.Translate(0,0,dz,Space.Self)

粒子效果

粒子的颜色、大小、旋转、速度、受力、噪音、拖尾、碰撞、灯光等
粒子系统 Particle System
添加一个粒子效果 Effects|Particle System
去掉黄色小框演示
在这里插入图片描述
22个字模块,默认启动Emission/Shape/Render三个模块(发射频率,粒子发生器的形状,粒子显示)
在这里插入图片描述
以后可能用到的size over lifetime(启用更多粒子)

  • start color,粒子初始颜色
  • start speed,粒子初始速度
  • start size,粒子初始大小

广告牌

广告牌 Billboard
修改材质,过滤黑色为透明材质
在这里插入图片描述
在这里插入图片描述黑底图片这样去边框
在这里插入图片描述
随机区间

  • 固定值Constant
  • 区间随机值 Random between two constans

周期与时长

  • Duration,周期,粒子系统的工作时长
  • Looping,循环
  • Prewarm,预热,粒子系统是否先内部预热一周
  • Start Lifetime,粒子的生命时长(存在时间),默认5秒
    在这里插入图片描述

模拟空间

  • local,本地
  • world,世界

在这里插入图片描述

匀速发射

**Emission 发射模块 **
匀速发射

  • Rate over Time
  • Rate over Distance
    爆发式发射
  • Bursts

匀速发射有两种方式:
1.Rate over Time
每1秒发射N个
2.Rate over Distance
每前进1米发射N个。针对运动的物体

爆发式发射

在这里插入图片描述

粒子发射器的形状

Shape模块

颜色渐变模块

Shaper

1.基本结构

Shader "Custom/study"
{

    Properties{
        //属性
        const float e = 2.7182818284590452353602874713527;
    }

    //SubShader可以写多个
    SubShader{

    }

    //后备方案
    Falback"VertexLit"


}

猜你喜欢

转载自blog.csdn.net/q327192368/article/details/126692770