コード例 #1
0
 void UpdateTransform()
 {
     //Transform updates
     meshTransform.Translate(direction.normalized * speed * Time.deltaTime);
     meshTransform.Scale(scale);
     meshTransform.RotateOrigin(rotateAngle);
 }
コード例 #2
0
 // This will run before Start
 void Awake()
 {
     // Draw the limb
     DrawLimb();
     meshTransform.Initialise(mesh);
     meshTransform.Scale(scale);
     MoveTo(StartLocation);
 }
コード例 #3
0
    void Update()
    {
        positionX = positionX >= maxX ? maxX : positionX;
        positionY = positionY >= maxY ? maxY : positionY;

        positionX = positionX <= minX ? minX : positionX;
        positionY = positionY <= minY ? minY : positionY;

        r = positionX > 0 ? 1.0f : 0;
        g = positionY > 0 ? 1.0f : 0;
        b = positionX < 0 ? 1.0f : 0;

        resetMesh(r, g, b);

        translationSpeedX = positionX <maxX && positionX> minX ? translationSpeedX : -translationSpeedX;
        translationSpeedY = positionY <maxY && positionY> minY ? translationSpeedY : -translationSpeedY;

        size = size >= maxSize ? maxSize : size;
        size = size <= minSize ? minSize : size;

        bigger  = size < maxSize && !smaller;
        smaller = size > minSize && !bigger;

        size = bigger && !smaller ? size + scalingSpeed : size - scalingSpeed;

        angle     += Time.deltaTime * rotationSpeed;
        positionX += Time.deltaTime * translationSpeedX;
        positionY += Time.deltaTime * translationSpeedY;
        size      += Time.deltaTime * scalingSpeed;

        Vector3[] vertices  = mesh.vertices;
        Matrix3x3 scale     = IGB283Transform.Scale(size, size);
        Matrix3x3 rotate    = IGB283Transform.Rotate(angle);
        Matrix3x3 translate = IGB283Transform.Translate(positionX, positionY);

        //Matrix3x3 transformation = TRS
        Matrix3x3 transformation = translate * rotate * scale;

        for (int i = 0; i < vertices.Length; i++)
        {
            vertices[i] = transformation.MultiplyPoint(vertices[i]);
        }
        mesh.vertices = vertices;
        mesh.RecalculateBounds();
    }
コード例 #4
0
    public void Draw()
    {
        //Adding MeshFilter and MeshRenderer  to Empty GameObject
        gameObject.AddComponent <MeshFilter>();
        gameObject.AddComponent <MeshRenderer>();

        // Get Mesh from the MeshFilter
        mesh = GetComponent <MeshFilter>().mesh;

        //Set the material to selected material
        meshRenderer          = GetComponent <MeshRenderer>();
        meshRenderer.material = material;

        meshTransform.Initialise(mesh);

        Reshape(20);
        meshTransform.Scale(Vector2.one * 0.2f);
    }