@matt2728 Thanks for the kind review. All of the dirt starts with a default wetness of 75%, so the cactuses immediately start shrinking. That's probably something I'd change if I update it. You're the second person to mention the space bar. It's in the info menu, but it must be getting cut off. I'm glad you figured it out.
As for the water particles: I have a game object at the end of the spout of the watering can. As the mouse is being pressed, I begin spawning the spheres at that game object. I then get a normalized vector pointing from the center of the watering can to the spout object. I multiply that by a random vector along with a velocity. I then attach a rigidbody, so the drop is affected by gravity and I can give it an initial velocity, and a material so it's blue and semi-transparent. Finally, I call destroy with a half-second delay. See the code below, and feel free to contact me if you have any other questions.
``` void FixedUpdate () { count++; if (pouring && count % (50 / rate) == 0) { Vector3 dropDir = transform.position - transform.parent.position; dropDir.Normalize(); dropDir.Scale(new Vector3(Random.value * velocity, Random.value * velocity, Random.value * velocity));
GameObject drop = GameObject.CreatePrimitive(PrimitiveType.Sphere); drop.transform.SetParent(transform); drop.transform.position = transform.position; drop.transform.localScale = new Vector3(0.001f, 0.001f, 0.001f); Rigidbody dropRb = drop.AddComponent(); Vector3 dropVelocity = dropDir; dropRb.velocity = dropVelocity; dropRb.drag = dragAmount;
drop.GetComponent().material = WaterMat;
Destroy(drop, delayToDestroy); } } ```