在电子游戏中移动平台可谓是十分常见的,如平台从一处至另一处的来回移动,或当需要玩家触发机关时,平台浮动并按一定的路线移动至目标处。本文主要是在Unity3D引擎下使用少量脚本实现两点之间来回移动平台的最基本功能,是一种比较简单且好理解的移动平台解决方案。
涉及到的点如下:
- 平台对象的实现
- 平台移动路线的设定
- 处于平台上游戏对象(如:玩家)的相对运动
创建平台控制对象
创建一个空对象,命名为PlatformObject,保证其transform.scale为默认值(1,1,1),为其添加Box Collider组件,Is Trigger设为True,添加一个脚本,命名为PlatformController.cs,需要提出的是,该对象不是平台的实体,而是主要用于控制平台实体的移动和实现相对运动。

创建平台实体对象
使用方块构建平台的外形,在对象PlatformObject下新建一个cube子对象,命名为Platform,该子对象才是平台的实体,并适当的设置cube的transform.scale属性,调整方块的长宽高,并为其添加一个Box Collider组件,平台的其他属性可自行设置。
如下:


设置父对象的Box Collider的size与子对象的scale一致,借此来保证父对象的碰撞范围与平台实体的大小一致。
实现平台控制
编辑PlatformController.cs脚本,以下代码主要实现:平台在两点之间来回移动并在到达两点时适当停留的功能,以及保证平台上的其他游戏对象相对于平台运动的功能。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 来回移动平台的控制
/// </summary>
public class PlatformController : MonoBehaviour {
[Tooltip("平台移动的结束位置")]
public Vector3 stopPosiiton;
[Tooltip("平台移动一次的时间")]
public float moveTime = 1f;
[Tooltip("平台到边界后的停留时间")]
public float stayTime = 1f;

本文介绍了如何在Unity3D中通过脚本实现简单的移动平台功能,包括创建控制对象和实体对象,设定移动路线,以及处理游戏对象在平台上的相对运动。通过创建PlatformController.cs脚本来控制平台在两点间的移动,并通过设定父子关系实现平台与其他游戏对象的相对运动,强调了保持父对象scale为(1,1,1)的重要性。"
138265145,11319943,解决Linux无法ping通百度问题及运维面试题集锦,"['Linux运维', '网络故障排除', '面试准备', '技术面试', '运维知识']
最低0.47元/天 解锁文章
1501

被折叠的 条评论
为什么被折叠?



