最近在做项目,遇到了一个问题,储水罐中的水,怎样让它不断的增长,看起来像真的一样
这个问题想了好久,最开始是想用粒子,然后找了几个插件,发现粒子太耗费资源,想了很久之后想到了一个好办法,直接一个贴图贴到圆柱上,然后控制圆柱的单方向生长如何?
想到就去做,拉了一个模型圆柱,然后找了张图,开始缩放。
结果遇到了一个不是问题的问题:正常缩放模型是两边都在扩大,怎么变成单独方向的缩放呢?
这边百度了一下大佬们的经验,看到了一个,感觉写的挺不错的。
大佬是利用改变scale和position来进行单方向的缩放,哦,对,是改变了大小之后,用坐标改变的方式让其看起来像是在原地缩放,很奇妙的想法,然后我在这个基础之上修改了一下,然后就可以愉快的玩耍了。
/// <summary>
/// 控制模型向一个方向生长
/// </summary>
public class GameCro : MonoBehaviour
{
private GameObject obj;
float lox;//大小
float posx;//坐标
// Start is called before the first frame update
void Start()
{
obj = GameObject.Find("Cube");
lox = obj.transform.localScale.x;//大小
posx = obj.transform.position.x;//坐标
}
// Update is called once per frame
void Update()
{
if (Input.GetKey(KeyCode.Q))//增长
{
if (lox < 10f)
{
lox += 0.05f;
posx -= 0.025f;
obj.transform.localScale = new Vector3(lox, obj.transform.localScale.y, obj.transform.localScale.z);
obj.transform.position = new Vector3(posx, obj.transform.position.y, obj.transform.position.z);
}
}
if (Input.GetKey(KeyCode.E))//减少
{
if (lox > 1f)
{
lox -= 0.05f;
posx += 0.025f;
obj.transform.localScale = new Vector3(lox, obj.transform.localScale.y, obj.transform.localScale.z);
obj.transform.position = new Vector3(posx, obj.transform.position.y, obj.transform.position.z);
}
}
}
}