限制x的范围-1~1

从0,0点生成,设置一个方块生成的数量,再用 2 / 数量,就可以得到它缩放多大。

假设数量为10

每个方块的x的坐标为:0, 0.2,0.4,0.6,0.8,1.0,1.2,1.4,1.6,1.8

整体-1,(-1,0.8) 我们设计的是中心点,进行一个偏移,整体 + (1/数量)

如何创建一个URP并使用Shader可视化

改变不同世界坐标下的不同颜色

如何让物体动起来?

using UnityEngine;

namespace DY._02_创建一个图形
{
    public class Graph : MonoBehaviour
    {
        public GameObject prefab;
        public Transform parent;
        public int count;
        
        private Transform[] _points;

        private void Start()
        {
            var position = Vector3.one;
            _points = new Transform[count];
            var step = count / 2;
            var scale = Vector3.one / step;
            for (var i = 0; i < _points.Length; i++)
            {
                var go = Instantiate(prefab, parent);
                _points[i] = go.transform;
                position.x = (i + 0.5f) / step - 1; // 将x限制在 -1~1之间
                position.y = Mathf.Sin(position.x * Mathf.PI); 
                go.transform.localPosition = position;
                go.transform.localScale = scale;
            }
        }

        private void Update()
        {
            float time = Time.time;
            Debug.Log(time);
            for (var i = 0; i < _points.Length; i++)
            {
                Transform point = _points[i];
                Vector3 position = point.localPosition;
                position.y = Mathf.Sin((position.x + time) * Mathf.PI);
                point.localPosition = position;
            }
        }
    }
}