c# - 统一变换位置设置对象中的边界
问题描述
我正在尝试使精灵在面板内连续下降,然后在到达面板的底部边界时停止。问题是在我设置了它必须停止移动的对象的位置之后,它让我 position.y = 0 就好像它是屏幕的中间一样。当到达其父对象(面板)的底部时,如何将其设置为停止移动。谢谢你。这是我的代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Transform_test : MonoBehaviour
{
[SerializeField]
SpriteRenderer[] Reels;
[SerializeField]
Transform[] ReelsTransform;
int speed;
bool drop;
[SerializeField]
GameObject Panel;
void Start()
{
Debug.Log(transform);
//transform.position = new Vector3 (10,0,0);
speed = 1;
drop = false;
}
// Update is called once per frame
void Update()
{
// test();
if (drop == false)
{
foreach (Transform Reels in ReelsTransform)//This Targets All Children Objects Of The Main Parent Object
{
Debug.Log("pos " + Reels.transform.position.y);
for (int i = 0;i<5;i++)
{
//Direction And Speed Of Movement
new WaitForSeconds(Random.Range(1, 3));
Reels.transform.Translate(Vector3.down * Time.smoothDeltaTime * speed, Space.World);
if (Reels.transform.position.y <= 0 )
{
Reels.transform.position = new Vector3(Reels.transform.position.x, Reels.transform.position.y + 58, Reels.transform.position.z);
}
}
}
}
}
}
解决方案
好的,这就是我解决它的方法。我在我希望卷轴停止的地方创建了一个空精灵,然后我设置 if 以将该位置与卷轴中第一个精灵的位置相匹配。如果位置匹配。将 moveto 设置为 true 并停止移动
public class transform2 : MonoBehaviour
{
public float speed;
public SpriteRenderer sprite1;
public SpriteRenderer[] sprites;
public SpriteRenderer cell1;
public GameObject Panel;
bool moveto;
void move()
{
if (moveto == false)
{
foreach (SpriteRenderer sprites in sprites)
{
sprites.transform.Translate(Vector3.down * Time.smoothDeltaTime * speed, Space.World);
if (sprite1.transform.position.y <= cell1.transform.position.y)
{
moveto = true;
sprite1.transform.position = cell1.transform.position;
}
Debug.Log("MOVE");
}
}
}
// Start is called before the first frame update
void Start()
{
speed = 20;
}
// Update is called once per frame
void Update()
{
move();
}
}
推荐阅读
- python - 我想添加两个不同的迭代次数
- kibana - 尝试将索引模板应用于弹性搜索时出现授权错误
- python - 推荐使用 Numpy 的结构化数组
- php - 在 WooCommerce 中 x 分钟或小时后自动完成处理订单
- answer-set-programming - 如何替换choicerule以减少使用asp(clingo)杀死接地过程的“无意义”答案
- python-3.x - 使用 yfinance 和 python 计算股票价值
- html - 过渡属性适用于汉堡按钮,但在隐藏/显示时不适用于具有“移动”类的菜单
- python - 在 Python 3 中对日期数组进行排序的格式
- ssl - 信任 pod 内的自签名证书
- google-cloud-dataflow - 无法为 Dataflow 传入Requirements.txt