예제 #1
0
 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;
     }
 }
예제 #2
0
    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");
        }
    }
예제 #3
0
 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);
     }
 }
예제 #4
0
 public virtual void Generate(GenerateAThing owner = null)
 {
     print("empty generate");
 }