scene视图

  • 飞越模式
    使用__飞越模式 (Flythrough mode)__ 可以通过第一人称飞行来导航 Scene 视图,类似于在许多游戏中导航的方式:
    单击并按住鼠标右键。
    使用鼠标移动视图,使用 WASD 键向左/向右/向前/向后移动,使用 Q 和 E 键向上和向下移动。
    按住 Shift 键可以加快移动速度。

对齐

  • 表面对齐
    使用__移动__工具在中心拖动时,按住 Shift 和 Control__(Mac 上为 Command__)可快速将游戏对象对齐到任何__碰撞体__的交叉点。
  • 顶点对齐
    使用__顶点对齐__可快速组合场景:从给定的网格中获取任何顶点,并将该顶点放置在与您选择的任何其他网格中的任何顶点相同的位置。例如,使用顶点对齐在赛车游戏中精确对齐路段,或者在网格的顶点定位能量块。

按照以下步骤使用顶点对齐:
1.选择要操作的网格,并确保__移动__工具处于活动状态。
2.按住 V 键激活顶点对齐模式。
3.将光标移动到网格上要用作轴心点的顶点上。
4.当光标位于所需顶点上方时按住鼠标左键,将网格拖动到另一个网格上的任何其他顶点旁边。
要将顶点对齐到另一个网格上的表面,请添加并按下 Shift+Ctrl (Windows) 或 Shift+Command (macOS) 键,同时移动到要对齐到的表面上。
要将轴心对齐到另一个网格上的顶点,请添加并按住 Ctrl (Windows) 或 Command (macOS) 键,同时将光标移动到要对齐到的顶点上。
5.对结果感到满意时,松开鼠标按键和 V 键(Shift+V 用作此功能的开关)。

网格

unity grid layout group纵向排版width计算错误 unity怎么对齐_Standard


可以从菜单 (Edit > Grid and Snap Settings) 中或使用网格可见性下拉菜单打开 Grid and Snap 窗口

  • 激活自动贴靠
    1.激活 Move 工具并确保控制柄方向设置为 Global ()。
    2.单击工具栏中 Pivot/Center 和 Global/Local 辅助图标旁边的网格贴靠图标 ()。
    启用自动网格贴靠时,Move、Rotate 和 Scale 变换工具会沿激活的辅助图标轴将选定的游戏对象贴靠到网格。如果需要游戏对象以较小的增量移动,也可以采用增量方式变换游戏对象。
  • 更改网格的不透明度
    如果网格线太浅或太深,可以进行调整:
    1.从工具栏中打开网格可见性下拉菜单 ()。
    2.从 Grid Settings 部分中,调整 Opacity 属性的值。
  • 调整网格的位置
    可以使用以下快捷键沿网格的轴前后移动网格:

要向后微移网格,请使用 Shift+[。
要向前微移网格,请使用 Shift+]。
微移网格可以使其更近(例如,如果很难从远处的网格中看到游戏对象)或将其移到更远处。

使用 Set Position 可将网格移动到所选游戏对象的手柄 (Handle) 或回到默认位置 (Reset)。

unity grid layout group纵向排版width计算错误 unity怎么对齐_Standard_02

视图控制栏

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_03

摄像机

unity grid layout group纵向排版width计算错误 unity怎么对齐_渲染器_04

Gizmos 菜单

unity grid layout group纵向排版width计算错误 unity怎么对齐_渲染器_05

Game视图

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_06

工具栏组件

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_07

快捷键

在 Windows 和 Linux 上,选择 Edit > Shortcuts。

静态游戏对象

被标记为静态的对象不会重新计算

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_08

预制体

using UnityEngine;
public class CircleFormation : MonoBehaviour
{
   // 以圆形形式实例化预制件
   public GameObject prefab;
   public int numberOfObjects = 20;
   public float radius = 5f;
   void Start()
   {
       for (int i = 0; i < numberOfObjects; i++)
       {
           float angle = i * Mathf.PI * 2 / numberOfObjects;
           float x = Mathf.Cos(angle) * radius;
           float z = Mathf.Sin(angle) * radius;
           Vector3 pos = transform.position + new Vector3(x, 0, z);
           float angleDegrees = -angle*Mathf.Rad2Deg;
           Quaternion rot = Quaternion.Euler(0, angleDegrees, 0);
           Instantiate(prefab, pos, rot);
       }
   }
}

发射

using UnityEngine;
public class FireProjectile : MonoBehaviour
{
    public Rigidbody projectile;
    public float speed = 4;
    void Update()
    {
        if (Input.GetButtonDown("Fire1"))
        {
            Rigidbody p = Instantiate(projectile, transform.position, transform.rotation);
            p.velocity = transform.forward * speed;
        }
    }
}

1.在 Unity 菜单栏中,选择 Edit > Project Settings,然后选择 Physics 类别以打开 Physics 窗口。

2.选择碰撞矩阵中的哪些层将与其他层交互(勾选相应层即可)。

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_09

约束

Aim:旋转受约束的游戏对象以朝向关联的游戏对象。

Look At:将受约束的游戏对象旋转到关联的游戏对象(简化的 Aim Constraint)。

Parent:使受约束的游戏对象跟随关联的游戏对象移动和旋转。

Position:像关联的游戏对象一样移动受约束的游戏对象。

Rotation:像关联的游戏对象一样旋转受约束的游戏对象。

Scale:像关联的游戏对象一样缩放受约束的游戏对象。

unity grid layout group纵向排版width计算错误 unity怎么对齐_Standard_10

旋转

// 正确使用欧拉角的旋转脚本。
// 将欧拉角存储在一个类变量中,并仅使用
// 该变量作为欧拉角进行应用,但从不依赖于读回欧拉值。
        
float x;
void Update () 
    {
        x += Time.deltaTime * 10;
        transform.rotation = Quaternion.Euler(x,0,0);
    }

随机

var element = myArray[Random.Range(0, myArray.Length)];

//圆内随机点
 var randWithinCircle = Random.insideUnitCircle * radius;

音频

Audio 设置(主菜单:Edit > Project Settings,然后选择 Audio 类别)可用于调整场景中播放的所有声音的最大音量。

unity grid layout group纵向排版width计算错误 unity怎么对齐_渲染器_11

Script Execution Order 设置

使用 Script Execution Order 设置可以指定 Unity 在调用不同 MonoBehaviour 类的事件函数时采用的相对顺序。例如,可以指定 Unity 应该先运行 Rotation MonoBehaviour 脚本的事件函数,然后才运行 MoveForward MonoBehaviour 脚本的事件函数。

该顺序单独应用于事件函数的每个类别,所以 Unity 按指定顺序调用其在一帧内需要调用的任何 Awake 函数,随后按相同顺序来调用活动游戏对象的任何 Update 函数。

可以在 Project Settings Inspector 中调整 Script Execution Order 设置。访问菜单:Edit > Project Settings__,然后选择 Script Execution Order__ 类别。

特殊文件夹名称

通常可为创建的文件夹选择任何名称来组织 Unity 项目。但是,Unity 会将许多文件夹名称解释为应以特殊方式处理文件夹内容的指令。例如,必须将 Editor 脚本放在名为 Editor 的文件夹中才能使这些脚本正常工作。

本页面包含 Unity 使用的特殊文件夹名称的完整列表。

Assets
Assets 文件夹是包含 Unity 项目使用的资源的主文件夹。Editor 中的 Project 窗口的内容直接对应于 Assets 文件夹的内容。大多数 API 函数都假定所有内容都位于 Assets 文件夹中,因此不要求显式提及该文件夹。但是,有些函数需要将 Assets 文件夹作为路径名的一部分添加(例如,AssetDatabase 类中的一些函数)。

Editor
放在名为 Editor 的文件夹中的脚本被视为 Editor 脚本而不是运行时脚本。这些脚本在开发期间向 Editor 添加功能,并在运行时在构建中不可用。

可在 Assets 文件夹中的任何位置添加多个 Editor 文件夹。应将 Editor 脚本放在 Editor 文件夹内或其中的子文件夹内。

Editor 文件夹的具体位置会影响其脚本相对于其他脚本的编译时间(有关此方面的完整说明,请参阅特殊文件夹和脚本编译顺序的相关文档)。使用 Editor 脚本中的 EditorGUIUtility.Load 函数可从 Editor 文件夹中的 Resources 文件夹加载资源。这些资源只能通过 Editor 脚本加载,并会从构建中剥离。

注意:如果脚本位于 Editor 文件夹中,Unity 不允许将派生自 MonoBehaviour 的组件分配给游戏对象。

Editor Default Resources
Editor 脚本可以使用通过 EditorGUIUtility.Load 函数按需加载的资源文件。此函数在名为 Editor Default Resources 的文件夹中查找资源文件。

只能有一个 Editor Default Resources 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。将所需的资源文件放在此 Editor Default Resources 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 EditorGUIUtility.Load 函数的路径中包含子文件夹路径。

Gizmos
Gizmos 允许将图形添加到 Scene 视图,以帮助可视化不可见的设计细节。Gizmos.DrawIcon 函数在场景中放置一个图标,作为特殊对象或位置的标记。必须将用于绘制此图标的图像文件放在名为 Gizmos 的文件夹中,这样才能被 DrawIcon 函数找到。

只能有一个 Gizmos 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。将所需的资源文件放在此 Gizmos 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 Gizmos.DrawIcon 函数的路径中包含子文件夹路径。

Resources
可从脚本中按需加载资源,而不必在场景中创建资源实例以用于游戏。为此,应将资源放在一个名为 Resources 的文件夹中。通过使用 Resources.Load 函数即可加载这些资源。

可在 Assets 文件夹中的任何位置添加多个 Resources 文件夹。将所需的资源文件放在 Resources 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在传递给 Resources.Load 函数的路径中包含子文件夹路径。

请注意,如果 Resources 文件夹是 Editor 的子文件夹,则其中的资源可通过 Editor 脚本加载,但会从构建中剥离。

Standard Assets
导入标准资源包(菜单:Assets > Import Package__)时,资源将放在一个名为 Standard Assets__ 的文件夹中。除了包含资源之外,这些文件夹还会对脚本编译顺序产生影响;请参阅关于特殊文件夹和脚本编译顺序的页面以了解更多详细信息。

只能有一个 Standard Assets 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。将所需的资源文件放在此 Standard Assets 文件夹内或其中的子文件夹内。

StreamingAssets
尽管将资源直接合并到构建中更为常见,但有时可能希望资源以其原始格式作为单独的文件提供。例如,需要从文件系统访问视频文件,而不是用作 MovieTexture 在 iOS 上播放该视频。将一个文件放在名为 StreamingAssets 的文件夹中,这样就会将其按原样复制到目标计算机,然后就能从特定文件夹中访问该文件。请参阅关于流媒体资源 (Streaming Assets) 的页面以了解更多详细信息。

只能有一个 StreamingAssets 文件夹,且必须将其放在项目的根目录;直接位于 Assets 文件夹中。将所需的资源文件放在此 StreamingAssets 文件夹内或其中的子文件夹内。如果资源文件位于子文件夹中,请始终在用于引用流媒体资源的路径中包含子文件夹路径。

隐藏的资源
在导入过程中,Unity 完全忽略 Assets 文件夹(或其子文件夹)中的以下文件和文件夹:

隐藏的文件夹。
以“.”开头的文件和文件夹。
以“~”结尾的文件和文件夹。
名为 cvs 的文件和文件夹。
扩展名为 .tmp 的文件。
这是为了防止导入由操作系统或其他应用程序创建的特殊文件和临时文件。

性能分析

要访问 Unity 性能分析器 (Unity Profiler),请选择 Window > Analysis > Profiler__,或使用键盘快捷键 Ctrl+7__(macOS 上为 Command+7)。

输入

键指物理键盘上的任何键,例如 W、Shift 键或空格键。
按钮指物理控制器(例如游戏手柄)上的任何按钮,例如 Xbox One 控制器上的 X 按钮。
虚拟轴被映射到控件(例如按钮或键)。用户激活控件后,该轴会收到 [–1..1] 范围中的某个值。您可以将该值用于您的脚本。
键盘:

//bool
Input.GetKey("a");
//查询水平轴的当前值并将其存储在变量中
float horizontalInput = Input.GetAxis ("Horizontal");

void Update()
{
    float moveSpeed = 10;
    //定义对象移动的速度。

    float horizontalInput = Input.GetAxis("Horizontal");
    //获取水平输入轴的数值。

    float verticalInput = Input.GetAxis("Vertical");
    //获取垂直输入轴的数值。

    transform.Translate(new Vector3(horizontalInput, verticalInput, 0) * moveSpeed * Time.deltaTime);
    //将对象移动到 XYZ 坐标,分别定义为 horizontalInput、0 以及 verticalInput。
}

触屏:

每根手指的触摸由 Input.Touch 数据结构表示:

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_12

//以下是一个示例脚本,只要用户点击屏幕,就会发出一条射线:

using UnityEngine;

public class TouchInput : MonoBehaviour
{
    GameObject particle;

    void Update()
    {
        foreach(Touch touch in Input.touches)
        {
            if (touch.phase == TouchPhase.Began)
            {
                // 从当前触摸坐标构造一条射线
                Ray ray = Camera.main.ScreenPointToRay(touch.position);
                if (Physics.Raycast(ray))
                {
                    // 如果命中,则创建一个粒子
                    Instantiate(particle, transform.position, transform.rotation);
                }
            }
        }
    }
}

2D

  • Sprite Renderer
  • 占位精灵
    选择 Assets>Create>Sprites,然后选择要创建的占位精灵(正方形、三角形、菱形、六边形或多边形)。
    要更改占位精灵,请在 Scene 视图__中单击该精灵,然后通过 Inspector__ 中的__精灵渲染器 (Sprite Renderer) 组件__进行编辑。
  • Sprite Editor
  • Custom Outline
    使用 Sprite Editor 的 Custom Outline 选项可编辑 Unity 渲染精灵纹理所在的网格的形状。Custom Outline 编辑器允许使用控制点来创建和定义精灵网格轮廓的形状。
  • Custom Physics Shape
    Sprite Editor 的 Custom Physics Shape 模块用于编辑精灵的物理形状;物理形状定义了精灵 2D 碰撞体网格的初始形状。可以通过碰撞体的组件设置进一步细化物理形状。
  • Secondary Textures
    Sprite Editor 的 Secondary Textures 模块可以将其他纹理与已编辑的精灵相关联。然后,着色器可以对这些辅助纹理进行采样,从而对精灵应用其他效果,例如法线贴图。辅助纹理目前仅受精灵渲染器支持,不适用于其他渲染器组件。
  • 排序组 (Sorting Group)
    可以将具有精灵渲染器 (Sprite Renderer) 的游戏对象分组在一起,并控制这些渲染器渲染精灵的顺序。Unity 将同一排序组中的精灵渲染器一起渲染,就好像它们是单个游戏对象一样。
  • 精灵遮罩

    sleep 精灵图集
  • 瓦片
    选择 Tilemap 选项后,在场景中将会创建一个新的 Grid 游戏对象,其中包含 Tilemap 子游戏对象。Grid 游戏对象决定了其子 Tilemap 的布局。

Tilemap 子游戏对象由 Tilemap 组件和 Tilemap Renderer 组件组成。Tilemap 游戏对象是绘制瓦片的地方。

通过将瓦片的单个精灵或精灵图集直接放入Tile Palette 窗口(如果该窗口未打开,请转到 Window > 2D > Tile Palette),可自动生成瓦片。

unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_13


unity grid layout group纵向排版width计算错误 unity怎么对齐_资源文件_14


sleep 可编程瓦片

sleep 可编程画笔