[相机控制] 今天学习的是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 设计,可以让你很方便地管理一组相关的游戏对象(比如所有的敌人、所有的金币、或者你代码里所有的豆子)。