//static float xyz[3] = { 1.7772, -0.7924, 2.7600 }; //static float hpr[3] = { 90.0000, -54.0000, 0.0000 }; //Vector3 xyz = new Vector3(1.7772f, 2.7600f, -0.7924f); //Vector3 hpr = new Vector3(54f, 0f, 0f); void Awake() { TFEngine.Instance.Gravity = new Vector3(0f, -GRAVITY, 0f); for (int i = 0; i < N1; i++) { for (int j = 0; j < N2; j++) { body[i, j] = GameObject.Instantiate(cubePrefab); body[i, j].name = string.Format("body {0},{1}", i, j); body[i, j].GetComponent <TFRigidbody>().autoDisable.enabled = false; TFMassBehaviour massBehaviour = body[i, j].GetComponent <TFMassBehaviour>(); massBehaviour.value = MASS * (j + 1); massBehaviour.computeMode = TFMassBehaviour.ComputeMode.ValueIsFinalMass; body[i, j].transform.localScale = new Vector3(LENGTH, HEIGHT, LENGTH); body[i, j].transform.position = new Vector3(i * 2f * LENGTH, HEIGHT * 0.5f, j * 2 * LENGTH); body[i, j].transform.parent = transform; } } }
public override void InitAfterResetScales() { base.InitAfterResetScales(); BoxCollider boxCollider = gameObject.GetComponent <BoxCollider>(); if (boxCollider != null) { float diameter = boxCollider.size.x; this.radius = diameter * 0.5f; this.length = boxCollider.size.z - diameter; } TFMassBehaviour massBehaviour = gameObject.GetComponent <TFMassBehaviour>(); if (massBehaviour != null) { switch (massBehaviour.computeMode) { case TFMassBehaviour.ComputeMode.ValueIsDensity: massBehaviour.mass.SetCapsule(massBehaviour.value, 2, this.radius, this.length); break; case TFMassBehaviour.ComputeMode.ValueIsFinalMass: massBehaviour.mass.SetCapsuleTotal(massBehaviour.value, 2, this.radius, this.length); break; } } if (skinnedMeshRenderer != null) { float diameter = radius * 2f; skinnedMeshRenderer.transform.localScale = new Vector3(diameter, diameter, diameter); skinnedMeshRenderer.SetBlendShapeWeight(0, length / (diameter * 2f)); skinnedMeshRenderer.SetBlendShapeWeight(1, length / (diameter * 2f)); } }