前言
Hi,我是李大数,喜欢探究数学,美术,游戏,心理等一切有艺术感之物,并把所得、所知、所感和朋友们一起分享的李大数。
本文 ----《李大数的Unity1001问》是关于Unity开发相关的问题简答,是平日“偶有所得,欣然记之”汇聚而成。虽然此刻离“1001问”还差很多,不过我会持续积累。
文章目录
- 前言
- 所有问题
-
- 如何实现一个全局初始化?
- 如何获取组件对象
- 如何实现单件类
- 如何访问脚本的运行时对象?
- 如何获取其他的GameObject?
- 如何切换2D/3D编辑器视图?
- 在Assets Panel中找不到Create > Tile?
- 下载了学习工程无法打开?
- 非Sprite脚本放在哪里?
- 如何在Unity环境中调试代码?
- Hierarchy面板中的层次关系记录在哪里
- GameObject/Componnent/Object三者关系?
- Componnent的生命期为多久?
- 从Resources.Load加载起来的Prefab如何实例化为Scene中的GameObject
- GameObject如何动态换图片?(这个方法只适用于Sprite是Single的情况)
- GameObject如何动态换Sprite?
- LoadAll的细微差异
- 如何在Unity中快速添加一个带动画的GameObject?
- Tile创建的最佳实践是什么?
- 如何为TileMap设置Collider(碰撞体)?
- 如何优化TileMap的碰撞性能?
- 如何寻找一个给定名字的GameObject?
- 对于assets里导入的图片如何切分为多个Sprite?
- TexturePacker中生成的合图如何导入unity?
- 如何导入素材?
- 项目元素的逻辑层级关系?
- 典型的Component有哪些?
- 典型的Asset有哪些?
- 如何把Sprite加入场景?
- 游戏对象的坐标对应的单位长度是多少?
- 在iPhone上的可视范围是多大?
- 脚本中的Awake、Start、Update函数有什么作用?
- 脚本如何挂接到Sprite对象
- 脚本编译怎么办?
- 如何创建TileMap?
- 为何使用Prefab预制件
- 动画制作的最佳实践
- Unity如何读取输入?
- Assets目录结构应该如何设计?
- 如何理解Anchor锚点和Pivot支点?
所有问题
如何实现一个全局初始化?
- 实现在Awake回调函数中
如何获取组件对象
- gameObject.GetComponent()得到组件对象
如何实现单件类
public class MyClass
{
private static volatile MyClass _instance;
private static object _lock = new object();
public static MyClass Instance
{
get
{
if (_instance == null)
{
lock(_lock)
{
if (_instance == null)
_instance = new MyClass();
}
}
return _instance;
}
}
private MyClass() {}
}
如何访问脚本的运行时对象?
- 找到脚本的宿主GameObject
- gameObject.GetComponent()得到
如何获取其他的GameObject?
- GameObject.Find()
- Transform.Find
- GameObject.FindWithTag
- GameObject.FindGameObjectsWithTag
- Resources.FindObjectsOfTypeAll
- 参考
如何切换2D/3D编辑器视图?
- Edit > Project Settings > Editor > Default Behaviour Mode > 2D/3D 切换2后重启应用生效。
在Assets Panel中找不到Create > Tile?
- Windows > Package Manager,右上方输入关键字“tile”,找到2D Tilemap Editor,点击右下角install即可。
下载了学习工程无法打开?
- 尽量安装工程所需要的Unity版本
- 授权过期,重新手动激活Unity
非Sprite脚本放在哪里?
- 挂在Canvas上,可以挂多个脚本,GameObject都可以挂多个脚本
如何在Unity环境中调试代码?
- Unity中双击脚本会自动用Visual Studio打开,设置断点调试即可
Hierarchy面板中的层次关系记录在哪里
- 记录在Transform中,指向另一个transform
GameObject/Componnent/Object三者关系?
- GameObject/Componnent都是Object的子类,Componnent被GameObject所组合。
- GameObject大部分是游戏的组成逻辑对象,如角色,瓦片地图,画板UI等,Component通常是游戏引擎的功能对象,如刚体,碰撞体,精灵渲染器等。
Componnent的生命期为多久?
- Componnent被GameObject所组合,其生命期同GameObject。
从Resources.Load加载起来的Prefab如何实例化为Scene中的GameObject
- 使用Object.Instantiate