public void Update() { //time=0; time += Time.deltaTime; time = time % limit; ratio = time / limit; if (positions != null) { pos = SolitaireMotion.GetPosition(ratio, positions); //targetMotion.GetPosition(ratio); } return; _v += _a; pos += _v; if (pos.y < _limit) { pos.y = _limit; _v.y *= -0.97f; } }
private Vector4[] _uvs;// = new Vector4[MAX]; void Start() { //モーションを10個くらいつくっとく // //motion int numMotion = 7; _motions = new SolitaireMotion[numMotion]; for (int i = 0; i < numMotion; i++) { _motions[i] = new SolitaireMotion(); _motions[i]._limit = _bottomDistance; _motions[i].Init(_startPosSpace); } _propertyBlock = new MaterialPropertyBlock(); _matrices = new Matrix4x4[_count]; _data = new SolitaireData[_count]; _colors = new Vector4[_count]; _randoms = new Vector4[_count]; _uvs = new Vector4[_count]; for (int i = 0; i < _count; i++) { _matrices[i] = Matrix4x4.identity; _data[i] = new SolitaireData();// _data[i].rot = Quaternion.Euler( 0, 0, 0 ); _randoms[i] = _data[i].random; _colors[i] = new Vector4( 1f, 1f, 1f, 1f ); _matrices[i].SetTRS( _data[i].pos, _data[i].rot, _data[i].scale ); _uvs[i] = SolitaireUV.GetUV(0, 0, 4, 13); //_uvs[i] = SolitaireUV.GetUV2(0,0); } _mat.SetVectorArray("_Random", _randoms); _propertyBlock.SetVectorArray("_Uv", _uvs); _propertyBlock.SetVectorArray("_Color", _colors); //_Loop(); }