那些不易注意到的Unity实用小功能

Unity是一款十分易用的游戏引擎,上手并不困难——恐怕也正因如此,少有人会仔细阅读帮助文档对Unity编辑器的功能做一个全面细致的了解,而一些非常实用的小功能在日常使用中很难被发现,但它们对工作效率的提升是有不小的帮助的。AlmostLogical的Devin Reimer有感于此为大家列举了10条不易注意到的Unity实用小功能,在此翻译给大家,并对一些步骤补充了示意图。

1)锁定Inspector

在inspector面板上方有一个小“锁”图标,点击锁住后可以将inspector面板锁定在当前选择的GameObject上。在你需要大量设置某个GameObject的参数时非常有效(例如为一个数组里添加大量引用)。
u3d_unkown_feature_lock_inspector

2)多个Inspector

点击小“锁”图标旁边的“context menu”图标,在下拉菜单中选择“Add Tab”,然后选“inspector”。与“锁定Inspector”功能配合使用将大幅提高工作效率。
u3d_unkown_feature_multi_inspector

3)搜索特定类型

不但可以通过名称进行快速检索,你还可以使用类型——点击“Search”图标并在下拉菜单中选择“Type”,或者使用更迅捷的方法:直接键入“t:type”,例如t:texture、t:material等等。
u3d_unkown_feature_type_search

4)在Inspector的数组(Array)中插入或删除数据

在Unity中编辑数组非常方便!——直到某一天你打算从中间删除或插入数据……这似乎是不可能完成的任务,但它确实可以完成:

  • 插入数据(复制一个数据),选中数组中的数据然后Ctrl-D(windows)、Command-D(Mac)。
  • 删除数组中间的数据:Shift-Delete两次(第一次清空数据,第二次删除数据)。
5)在Inspector文本编辑框中换行

Mac只需Option-Return,而Windows下这个功能……被“遗漏”了……一般情况下你需要从别的文本编辑器(例如记事本)中拷贝过来带有换行的文本——这实在有些蹩脚,于是有人写了一个Editor Script来实现这个功能:只需在你的工程目录下创建一个Editor文件夹,然后把这个脚本(CreateNewLine.cs)放到里面即可。

6)快速创建Prefab

在Hierachy里设置好你的GameObject然后将它直接拖拽到Project面板——Prefab即刻呈现!

7)在Scene View下编辑基础型Collider的尺寸

选中一个带有Collider的物体,按住Shift键,绿色小方块出现后就可以进行变形操作了(鼠标必须准确点中绿色方块,待其变黄后即可拖拽缩放)。注意,如果Inspector中Collider属性面板没有展开是不能使用该功能的。
u3d_unkown_feature_scale_collider

8)为物体设置自定义图标

在inspector中选中GameObject的图标,在下拉列表中可以选择图标类型、颜色甚至创建一个自定义图标。你还可以为脚本附加图标——在Project面板中选中脚本,然后在inspector中点击它的图标。这个脚本的图标将会被自动附加给所有绑定了这个脚本的物体,如果你在做类似路径点这样的东西,这个功能将显得极为实用。

9)对齐到顶点,对齐到Collider

要对齐到顶点:按住“V”然后点击目标顶点,然后拖拽鼠标到另一个mesh中你希望对齐的顶点。对齐到Collider:使用Translate工具时按住Shift键。
u3d_unkown_feature_vertex_align

10)Editor编程

如果Unity Editor缺少你所需的功能,你可以自己写。通过脚本扩展Editor非常容易,效果也非常显著。例如PlayModePersist可以保存你在PlayMode下对GameObject做出的任何改变。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Unity游戏开发中,有时候需要将经纬度和Unity坐标进行相互转换。经纬度是用来表示地球上某一点位置的地理坐标,而Unity坐标则是用来表示游戏场景中各个对象的位置。 首先,我们来看如何将经纬度转换为Unity坐标。这个过程涉及到地球模型和坐标系的转换。首先需要了解Unity中使用的坐标系,Unity引擎使用的是左手坐标系,其中X轴是向右的,Y轴是向上的,而Z轴是向前的。 假设我们已经获得了一个地理位置的经纬度,可以通过Unity提供的API将经纬度转换为空间坐标。可以使用Unity的LocationService类来获取设备当前的地理位置信息,其中有一个属性latitude是用来表示纬度的,另一个属性longitude是用来表示经度的。 Unity中的LocationService类还提供了方法将经纬度转换为Unity的空间坐标。具体的转换过程可以使用LocationService的方法:Input.compass.trueHeading可以获取真北指向的方向,然后通过一些数学计算和转换矩阵可以将经纬度转换为Unity坐标。 反过来,如果我们已经有了一个Unity坐标,想要转换为经纬度,也是可以的。可以使用Unity提供的方法将Unity坐标转换为屏幕坐标,然后可以通过一些数学和地理计算,将屏幕坐标转换为经纬度。 总结一下,经纬度和Unity坐标之间的转换是一个比较常见的需求,在Unity游戏开发中可以使用Unity提供的LocationService类和一些数学计算方法来实现。同时,也可以利用一些第三方库来简化这个转换过程。 ### 回答2: Unity是一款流行的游戏引擎,它提供了许多实用功能来帮助开发者创建游戏。其中一个实用功能是经纬度和Unity坐标之间的转换。 经纬度是地球上地理位置的表示方式,由纬度(latitude)和经度(longitude)组成。在许多应用中,我们可能需要将经纬度坐标转换为Unity中的坐标系统,以便在游戏中定位和展示地理位置。 在Unity中,可以使用提供的API函数来进行经纬度和Unity坐标之间的转换。首先,我们可以使用"LocationService"类来获取设备的经纬度信息。通过调用"Input.location.Start()"函数和"Input.location.lastData.latitude"和"Input.location.lastData.longitude"属性,我们可以获取到当前设备的经纬度。 接下来,我们可以将获得的经纬度信息转换为Unity坐标。这可以通过将经纬度映射到Unity的坐标系范围内来实现。一种常见的映射方式是将地球的纬度范围[-90, 90]转换为Unity的Y坐标范围[-10, 10],将地球的经度范围[-180, 180]转换为Unity的X坐标范围[-10, 10]。可以使用简单的比例缩放来完成这个映射过程。 通过将经纬度转换为Unity坐标,我们可以在游戏中使用这些坐标来定位和展示地理位置。例如,我们可以在游戏世界中创建一个物体,并将其放置在经纬度对应的Unity坐标上,以此在游戏中呈现地理位置。这对于开发基于地理位置的游戏和应用程序非常有用。 总之,Unity提供了经纬度和Unity坐标之间转换的实用功能,使得开发者可以方便地在游戏中定位和展示地理位置。通过将经纬度转换为Unity坐标,我们可以使用这些坐标来在游戏中呈现地球上的地理位置。 ### 回答3: 在Unity中,经纬度和Unity坐标之间的转换是一个相当实用功能,尤其在开发地理位置相关的应用程序时。 首先,我们来看经纬度转换为Unity坐标的过程。经度表示了地球上某个点的东西方向位置,而纬度表示了地球上某个点的南北方向位置。在Unity中,我们可以使用脚本来将经纬度转换为Unity中的坐标。我们可以使用标准的经纬度坐标系,其中纬度的范围是-90到90,经度的范围是-180到180。首先,我们需要确定Unity世界中一个参考点的经纬度,然后计算指定经纬度点与参考点之间的水平和垂直距离,将其转换为Unity坐标的单位。 另一方面,Unity坐标转换为经纬度也是一个常见的需求。在这种情况下,我们需要使用Unity中的Unity API来获取场景中某个物体的位置坐标,然后将其转换为经纬度值。首先,我们需要确定一个参考点的经纬度作为原点,然后计算指定点与参考点之间的水平和垂直距离。最后,通过一些数学运算和公式,我们可以将该距离转换为对应的经度和纬度值。 总结起来,经纬度和Unity坐标之间的转换可以通过一些简单的数学运算和公式实现。这个功能在开发地理位置相关的应用程序时非常有用,例如在虚拟现实游戏中创建基于真实地理位置的游戏世界,或者在实际物理位置点周围放置虚拟对象等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值