如何解决如何在编辑器中为 Unity 中的旋转平台脚本添加列表
我目前正在制作一个 2D 游戏,并添加了一个围绕中心旋转的平台。现在我想要,您可以选择要围绕中心旋转的平台数量。就像在带有电路点的屏幕截图上一样。我不是很热衷于编码,所以你可以将它添加到我当前的脚本中吗?
谢谢!
当前脚本:
using UnityEngine;
public class Rotation_Object_System : MonoBehaviour
{
[SerializeField]
private Transform rotationCenter;
public GameObject rotationObject;
[SerializeField]
private float rotationRadius = 2f,angularSpeed = 2f;
public bool ClockwiseRotation;
public bool HideRotationCenter;
private float posX,posY,angle = 0f;
private void Start()
{
Loading_Initial_Parameters();
}
private void Update()
{
// Rotation
posX = rotationCenter.position.x + Mathf.Cos(angle) * rotationRadius;
posY = rotationCenter.position.y + Mathf.Sin(angle) * rotationRadius;
rotationObject.transform.position = new Vector2(posX,posY);
float angularMovement = Time.deltaTime * angularSpeed;
if (ClockwiseRotation)
angle -= angularMovement;
else
angle += angularMovement;
if (angle >= 360f)
angle = 0f;
}
private void Loading_Initial_Parameters()
{
if (rotationCenter.TryGetComponent<SpriteRenderer>(out var rotationCenterSpriteRenderer))
{
rotationCenterSpriteRenderer.enabled = !HideRotationCenter;
}
else
{
Debug.LogWarning(
$"Rotation Center ({rotationCenter.name}) does NOT HAVE " +
$"a SpriteRenderer Component to hide/show");
}
}
}
解决方法
我认为做一些改变会让你觉得这对你有用。
- 将公共字段添加为列表或数组。这将允许您从 Unity 的检查器中添加/删除元素。
- 更新您的更新代码以遍历数组/列表中的每个项目并将位置更改应用于每个项目。
- 您可能需要添加一点代码来单独跟踪每个旋转位置...您已经在跟踪单个游戏对象的角度...您需要将其更新为数组/列表... 1您正在处理的每个游戏对象的项目。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。