public override void Init(Transform tgtTransform = null) { //_marume = 10f;//Random.value * 3f; // if(Random.value<0.5f) _marume = 1000f; //Debug.Log("Init"); _property = new MaterialPropertyBlock(); _renderer = GetComponent <MeshRenderer>(); _property.SetFloat("_ClipTh", 0.5f + Random.value * 0.4f); _property.SetFloat("_Naname", 30f + Random.value * 20f); _zRad = Random.value * Mathf.PI * 2f; _zRadSpd = Random.value * 0.3f; _mesh = MeshUtil.CloneMesh(_meshSrc, "test"); //_mesh = MeshUtil.GetNewMesh(_mesh,MeshTopology.Lines); _catmullResolution = Mathf.FloorToInt(3 + 2 * Random.value); //Params.Instance.catmullResolution; if (Random.value < 0.2f) { _catmullResolution = 3; } GetComponent <MeshFilter>().mesh = _mesh; //あとでやる /* * if(Params.Instance){ * _speed = 0.05f + Params.Instance.brushSpeedRandomness * Random.value; * _masatsu = 0.1f + Params.Instance.brushMasatsuRandomness * Random.value; * * }else{ * _speed = 0.05f + 0.2f * Random.value; * _masatsu = 0.1f + 0.8f * Random.value; * }*/ _speed = 0.02f + 0.10f * Random.value; _masatsu = 0.5f + 0.45f * Random.value; _mouse = new MouseUtil( _speed, //speed _masatsu, //masatsu _catmullResolution, tgtTransform ); _brushWidth = 0.03f + 0.10f * Random.value; //if(Random.value<0.5f) _brushWidth = 0.02f + 0.07f * Random.value; //_vertices = _mesh.vertices; //_indices = _mesh.triangles; //Debug.Log(_mesh.vertexCount); }
void Start() { _mesh = MeshUtil.CloneMesh(_srcMesh, "test"); //_mesh = MeshUtil.GetNewMesh(_mesh,MeshTopology.Lines); GetComponent <MeshFilter>().mesh = _mesh; _mouse = new MouseUtil(0.1f + 0.1f * Random.value, 0.8f + 0.1f * Random.value, 3, null); _vertices = _mesh.vertices; _binormals = new Vector3[_mesh.normals.Length]; for (int i = 0; i < _vertices.Length; i++) { int idxX = i % 21; int idxY = Mathf.FloorToInt((float)i / 21f); float rx = (float)idxX / 20f; float ry = (float)idxY / 20f; _vertices[i] = new Vector3( 1f * Mathf.Cos(-rx * Mathf.PI * 2f + Mathf.PI * 0.5f), 1f * Mathf.Sin(-rx * Mathf.PI * 2f + Mathf.PI * 0.5f), ry ); } _mesh.vertices = _vertices; _mesh.RecalculateNormals(); _mesh.RecalculateTangents(); _normals = _mesh.normals; _tangents = _mesh.tangents; //_tangents = new Vector3[_mesh.tangents.Length]; var tangents = _mesh.tangents; /* * for(int i=0;i<_normals.Length;i++){ * //_normals[i] = * var t = tangents[i]; * _tangents[i] = new Vector3( * t.x,t.y,t.z * ); * var tangent = tangents[i]; * var normal = _normals[i]; * * Debug.Log(i + " _ " + _normals.Length); * _binormals[i] = Vector3.Cross(tangent, normal); * }*/ }