本文总共2235个字,阅读需8分钟,全文加载时间:2.601s,本站室内设计专栏收录该内容! 字体大小:

文章导读:第①步如图所示。我们已经给小球添加了移动的脚本。小球是Sphere。现在想实现的是让摄像机MAInCamera跟随小球一起运动。第②步 我们先来看看上面说的不可行的方法:如图。直接将"MAIn Camera"拖动到"Sphere"的子目录……各位看官请向下阅读:

第①步如图所示。我们已经给小球添加了移动的脚本。小球是Sphere。现在想实现的是让摄像机MAInCamera跟随小球一起运动。第②步 我们先来看看上面说的不可行的方法:如图。直接将"MAIn Camera"拖动到"Sphere"的子目录。即让摄像机成为小球的子物体。这样。两个对象就可以一起运动了。那么我们来看看到底可不可行。第③步我们记录一开始两物体的位置。此时让小球向右移动。此时。我们从这个视角看去。的确是一起运动了。但是。这不是我们在游戏里面看到得视角。我们看到的是摄像机的视角。第④步 运行游戏后。我们可以看到。画面是"天旋地转"的。所以。这种方法对于自身还在运动的物体来时。是不可行的。那么下来我们说说正确的做法。正确的方法:第①步我们要实现的是让相机跟随物体一起移动。其实就是让相机和小球的相对位置不变即可。这里我们需要使用代码来控制两个对象之间的相对位置。使其保持不变。首先。在MAInCamera里面创建一个C# 脚本。如图所示。点击MAInCamera。在右边属性栏最下方。选择 AddComponent。然后。在弹出的选项里拉到最下方。选择NewScript。然后创建一个C#

在Unity中。我们经常需要让摄像机跟随一个物体移动。如果物体是水平移动的。而自身没有发生任何的偏转。那么我们可以直接将摄像机放在该物体下。这样就可以实现它们一起移动了。但是。如果移动的物体是圆的。比如小球。它在移动的过程中。自身是不断旋转的。所以。摄像机也会跟着一起旋转。那么我们看到得画面将是天旋地转的。很明显。这样是不行的。那么我们该如何正确的让摄像机跟随小球一起运动呢?希望能帮助到有需要的人。学

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

使用工具

电脑型号:联想(Lenovo)天逸510S;系统版本:联想(Lenovo)天逸510S;软件版本:Unity4.0

不可用的方法:

第①步

如图所示。我们已经给小球添加了移动的脚本。小球是Sphere。现在想实现的是让摄像机MAInCamera跟随小球一起运动。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第②步

我们先来看看上面说的不可行的方法:如图。直接将&quot。MAIn Camera&quot。拖动到&quot。Sphere&quot。的子目录。即让摄像机成为小球的子物体。这样。两个对象就可以一起运动了。那么我们来看看到底可不可行。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第③步

我们记录一开始两物体的位置。此时让小球向右移动。此时。我们从这个视角看去。的确是一起运动了。但是。这不是我们在游戏里面看到得视角。我们看到的是摄像机的视角。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第④步

运行游戏后。我们可以看到。画面是&quot。天旋地转&quot。的。所以。这种方法对于自身还在运动的物体来时。是不可行的。那么下来我们说说正确的做法。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

正确的方法:

第①步

我们要实现的是让相机跟随物体一起移动。其实就是让相机和小球的相对位置不变即可。这里我们需要使用代码来控制两个对象之间的相对位置。使其保持不变。首先。在MAInCamera里面创建一个C# 脚本。如图所示。点击MAInCamera。在右边属性栏最下方。选择 AddComponent。然后。在弹出的选项里拉到最下方。选择NewScript。然后创建一个C#脚本。命名为 Move。此时可以看到。我们新添加的一个C#脚本。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第②步

然后。开始写代码了。我们打开这个C# 脚本。我们要让摄像机和小球的相对位置保持不变。那么就必须获取到小球的位置。在Unity里。我们用transForm 组件来获取一个物体的位置。所以先定义一个transForm组件。命名为bolltransForm。选择保存。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第③步

此时。我们返回Unity。在MAInCamera的C#脚本里。多了一项。这里就是我们要添加的组件。可以看到这里还没有添加组件。我们要获取的是小球的位置。所以我们需要添加Sphere:将Sphere用鼠标拖进这个选择框即可。这样。我们就成功的将摄像机和小球关联了起来。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第④步

我们点击小球。在右边的属性栏里可以看见小球的一个transForm属性。只要小球一开始运动。那么它的transForm属性的值就被传递到了相机的bolltransForm那里。我想。这里大家都是非常明白的。

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第⑤步

我们已经获取到了小球的位置。要使得它们之间的位置不变。也就是说小球和摄像机之间初始的偏移量始终不变就可以了。所以。第一步:我们首先要计算出小球和摄像机之间的偏移量。我们把偏移量设为offset。并且计算出offset。用代码定义出来。因为偏移量是三维空间。所以我们用到Vector3。继续在c#脚本里写。如图所示:

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第⑥步

第二步:写出它们之间的关系。即 初始偏移量=摄像机的位置-小球的位置。用代码表示出来如下图所示:

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

第⑦步

第三步。我们要通过此公式确定摄像机的位置。即:小球的位置+偏移量就等于摄像机的位置。而小球是不停地在动的。我们要不停的更新计算摄像机的位置。而在unity里。update方法是不停地执行的。所以这一步的公式需要写在 Update方法里面就可以了。在update里面写上:transForm.postion=offset+bolltransForm.postion 。

第⑧步

这样。整个过程就完成了。我们保存。开始运行。可以看到。现在摄像机看到的画面也就一起跟着小球运动了。这就是在unity中用代码控制两个对象。使其距离保持不变的方法。我想。通过我这样的讲解。大家应该都懂了吧!

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

unity3D中怎样让摄像机跟随小球移动而不旋转讲解教程

总结:

友情提醒

Unity3D 进行游戏开发要注意游戏对象和脚本的关系。避免混淆不清。

以上内容由优质教程资源合作伙伴 “鲸鱼办公” 整理编辑,如果对您有帮助欢迎转发分享!

你可能对这些文章感兴趣:

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注