void UpdateTransform() { //Transform updates meshTransform.Translate(direction.normalized * speed * Time.deltaTime); meshTransform.Scale(scale); meshTransform.RotateOrigin(rotateAngle); }
// This will run before Start void Awake() { // Draw the limb DrawLimb(); meshTransform.Initialise(mesh); meshTransform.Scale(scale); MoveTo(StartLocation); }
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(); }
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); }