public override void Generate(GenerateAThing owner = null) { if (functionActive == ActiveSetting.On) { print("generate transform"); transform.localPosition = initialLocalPosition + RandomInsideBox(positionRanges); if (useWorldForScale) { var parent = transform.parent; transform.SetParent(null); transform.localScale = MultiplyPerAxis(initialWorldScale, RandomVectorBetween(scaleMin, scaleMax)); transform.SetParent(parent); } else { transform.localScale = MultiplyPerAxis(initialLocalScale, RandomVectorBetween(scaleMin, scaleMax)); } transform.localRotation = Quaternion.Euler(RandomInsideBox(rotationRanges)) * initialLocalRotation; } else if (functionActive == ActiveSetting.Disable) { transform.localPosition = initialLocalPosition; transform.localScale = initialLocalScale; transform.localRotation = initialLocalRotation; } }
public override void Generate(GenerateAThing owner = null) { if (skin != null) { if (functionActive == ActiveSetting.On) { Mesh blendMesh = skin.sharedMesh; int blendShapeCount = blendMesh.blendShapeCount; float value = Random.Range(min, max); if (useValueFromParent) { print("implement value from parent"); } bool found = false; for (int i = 0; i < blendShapeCount; i++) { if (blendMesh.GetBlendShapeName(i) == shapeName) { skin.SetBlendShapeWeight(i, value); found = true; } } if (!found) { print("blend shape not found in model"); } } } else { print("no skin to set blend shape on"); } }
public void Mirror(GenerateAThing owner = null) { if (mirror == null) { print("mirror not set"); } else { transform.localScale = mirror.localScale; Vector3 take = mirror.localPosition; take.x *= -1; transform.localPosition = take; take = mirror.localRotation.eulerAngles; take *= -1; transform.localRotation = Quaternion.Euler(take); } }
public virtual void Generate(GenerateAThing owner = null) { print("empty generate"); }