例如2D游戏里帽子左右的移动:
对于帽子:先获取game视图屏幕的大小,再将其转换成世界坐标点,之后获取帽子的宽度,再计算帽子可移动大小 值
对于鼠标:将鼠标的位置转换为世界坐标位置,
private Vector3 pinmu;
private Vector3 shijie;
private float hatwidth;
private float width;
private Vector3 hatPosition;
private Vector3 shuPosition;
void Start()
{
pinmu = new Vector3(Screen.width, 0, 0);//屏幕的宽度;
shijie = Camera.main.ScreenToWorldPoint(pinmu);///将屏幕的宽度变为坐标轴;
hatwidth = GetComponent<Renderer>().bounds.extents.x;///获取帽子的宽度=渲染出来的边界/范围/x
width = shijie.x - hatwidth;/计算出帽子的可移动范围值
hatPosition = transform.position;获取帽子的初始位置;
}
// Update is called once per frame
void Update()
{
shuPosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);将鼠标的位置转化为世界坐标位置;
hatPosition = new Vector3(shuPosition.x, hatPosition.y, 0);/帽子移动的方向为鼠标的的x,y,方向
hatPosition.x = Mathf.Clamp(hatPosition.x, -width, width);//设置帽子的可移动范围
GetComponent<Rigidbody2D>().MovePosition(hatPosition);/帽子移动
}
版权声明:本文为qq_46289420原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。