1.7 KiB
1.7 KiB
[相机控制] 今天学习的是MMO的15节课摄像机 通过多层结构控制摄像机的移动缩放,并且适配安卓平台的手指旋转缩放
第三人称相机控制
在新版本基本上是使用cinemamachine来控制相机的移动,在15年的时候并没有这个插件,因此教程使用多层结构来手搓了一个第三人称相机控制器
Transform的一些知识
当你在一个 Transform 对象上使用 foreach 循环时,你实际上是在遍历它在场景层级 (Hierarchy) 中的所有子对象 (child objects)。
可以把 pellets 这个 Transform 想象成一个父容器,它下面可以挂载很多子物体。foreach 循环会逐一访问它的每一个子物体。
在你的代码中:
C#
public Transform pellets; // 你会在Inspector中把一个父物体(比如一个空对象)拖到这里,这个父物体下包含了所有的豆子。
// ...
public void NewRound()
{
// 这个循环会遍历 'pellets' 这个Transform下的每一个子物体的Transform组件
foreach (Transform pellet in pellets)
{
// 'pellet' 在每次循环中,都是一个子物体的 Transform
// 比如,你可以在这里重新激活每一个豆子
pellet.gameObject.SetActive(true);
}
}
总结一下:
- 不是数组:
pellets是单个Transform组件。 - 可以遍历:因为它被设计成可以像集合一样,让你能方便地访问其所有的子物体。
- 遍历内容:循环遍历的是它所有子物体的
Transform。
这是一个非常有用的 Unity 设计,可以让你很方便地管理一组相关的游戏对象(比如所有的敌人、所有的金币、或者你代码里所有的豆子)。