public void Awake() { if (Skin == null) { Skin = GetComponent <SkinnedMeshRenderer>(); } if (Spawner == null) { Spawner = GetComponent <MassSpawner3D>(); } }
void OnTriggerStay(Collider other) { //Vector3[] moldForces = new Vector3[Ms3D.VertCount/2]; //float xNoise = Random.Range (-50, 20); //float yNoise = Random.Range (-50, 20); //float zNoise = Random.Range (-50, 50); //Debug.Log(other.name); if (other.tag == "ExcitedSpawner" || other.tag == "AcceptSpawner") { MassSpawner3D testSpawner = other.GetComponent <MassSpawner3D>(); MassSpringSystem3D testSpringSystem = other.GetComponent <MassSpringSystem3D>(); Vector3[] moldPositions = new Vector3[testSpringSystem.VertCount / 2]; //Vector3[] moldPositionsforMyspawner = new Vector3[testSpringSystem.VertCount/2]; //testSpawner.Primitives[k].transform.position = mySpawner.Primitives[index].transform.position; float dist = Vector3.Distance(mySpawner.transform.position, testSpawner.transform.position); if (dist < 5.0f) { //string debugText = ""; foreach (var indexmass in testSpawner.Primitives) { int index = indexmass.Key; GameObject mass = indexmass.Value; // use overlapsphere to check whether a voxel of mine is close: foreach (Collider coll in Physics.OverlapSphere(mass.transform.position, radius)) { if (coll.transform.parent == this.transform) { Vector3 force = coll.transform.position - mass.transform.position; //debugText += "\nAdding force from " + mass.name + " to " + coll.gameObject.name + " of " + force; break; } } //mass.GetComponent<Rigidbody>().AddForce(force); //mySpawner.transform.GetChild(k).position = testSpawner.transform.GetChild(k / 2).position; //Debug.Log(testSpawner.transform.GetChild(k).name); //moldPositions[k] = testSpawner.transform.GetChild(k).position; //moldPositionsforMyspawner[k] = mySpawner.transform.GetChild(k).position; //moldForces[k].x = xNoise; //moldForces[k].y = yNoise; //moldForces[k].z = zNoise; } //Debug.Log(debugText); //testSpringSystem.positionBuffer.SetData(moldPositions); //mySpringSystem.positionBuffer.SetData(moldPositionsforMyspawner); //Ms3D.externalForcesBuffer.SetData(moldForces); } } }