| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class ImageMove : MonoBehaviour
- {
- public Image targetImage; // 要移动的 UI Image
- public float speed = 100f; // 移动速度(像素/秒)
- public float leftLimit = -200f; // 左边界相对初始位置
- public float rightLimit = 200f; // 右边界相对初始位置
- private RectTransform rectTransform;
- private Vector3 initialPosition;
- private int direction = 1; // 1表示向右,-1表示向左
- void Start()
- {
- if (targetImage == null)
- {
- Debug.LogError("请在 Inspector 中绑定 Image!");
- return;
- }
- rectTransform = targetImage.GetComponent<RectTransform>();
- initialPosition = rectTransform.anchoredPosition;
- }
- void Update()
- {
- if (targetImage == null) return;
- // 移动
- rectTransform.anchoredPosition += new Vector2(direction * speed * Time.deltaTime, 0);
- // 检查边界,反转方向
- if (rectTransform.anchoredPosition.x > initialPosition.x + rightLimit)
- {
- rectTransform.anchoredPosition = new Vector2(initialPosition.x + rightLimit, rectTransform.anchoredPosition.y);
- direction = -1; // 向左
- }
- else if (rectTransform.anchoredPosition.x < initialPosition.x + leftLimit)
- {
- rectTransform.anchoredPosition = new Vector2(initialPosition.x + leftLimit, rectTransform.anchoredPosition.y);
- direction = 1; // 向右
- }
- }
- }
|