7.ScreenToWorldPoint;
7.ScreenToWorldPoint;
2D视角设置
①ScreamToWorld:屏幕坐标转世界坐标
②鼠标按下:OnMouseDown()
③鼠标抬起:OnMouseUp()
ScreenToWorldPoint//屏幕坐标转换为世界坐标
bool 勾选鼠标//工具
onmousedown()鼠标按下
onmouseup()鼠标抬起
update 开始运行
transform.position=camera.main.screentoworldpoint(input.mouseposition);获取摄像机wei'zhi
new vector3(0,0,0)坐标
// 当用户在 GUIElement 或碰撞器上按鼠标按钮时调用 OnMouseDown
private void OnMouseDown()
// 当用户松开鼠标按钮时调用 OnMouseUp
private void OnMouseUp()
//图片跟随鼠标移动
this.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input .mousePosition .y,10));
OnMouseDown鼠标按下
OnMouseUp鼠标抬起
当用户在GUI元素或碰撞器上按鼠标按钮时调用此函数
小鸟添加碰撞体用来实现和鼠标的交互
OnMouseDown()鼠标按下时调用此函数
OnMouseUp()鼠标抬起时调用此函数
添加球体碰撞
将屏幕坐标转换成世界坐标
Camera.main.Screentoworldpoint
和物体的鼠标交互,需要添加碰撞体
屏幕坐标左下角(0,0)
世界坐标中间(0,0)
拖拽小鸟, 给小鸟加碰撞提,
脚本控制,
OnMouseDown,鼠标按下,
OnMouseUp,鼠标抬起,
标志位, 坐标转换, camera.main.screenToWorldPoint(Input.mousePosition); 屏幕坐标转换成世界坐标系。
问题,不给小鸟加碰撞提,就不能发生碰撞检测。onmousedown, onmouseup 都得有碰撞体才能使用,原理是使用射线检测。
鼠标使用oneMouseD
private bool is Click=false;
isClick=ture;
isClick=flase;
if(isClick){//鼠标移至按下,进行位置的跟随
transform.position=camera.main.ScreenTowrLdpoint=Input.mousePostion;
}
为小鸟添加了 circle collider 2D圆形碰撞监测器
OnMouseDown
可以相当于start和update两个函数的存在
也就是当满足一些情况的时候,系统会自动调用这个函数
在这里的意思就是:当用户在GUI元素或者碰撞器上按鼠标的时候,系统会自动调用这个函数
transform.position = Camera.main.ScreenToWorldPoint(Input.mousePosition);
//把屏幕坐标位置转变成世界坐标位置
对于2D游戏来说 位置依旧使用的是vector3
仍然要考虑z轴的问题。
在3D场景中 用射线获取世界坐标z轴的数值。
不让z轴有变化
小鸟添加碰撞器
添加代码
OnMouseDown() 鼠标按下监控
OnMouseUp() 鼠标抬起监控
Update方法进行鼠标状态检测
坐标系装换
Camera.main. ScreenToWorldPoint()
Z轴 变-10
1.添加一个向量 ector(0,0,10)
2.
onmousedown按下鼠标
onmouseup松开鼠标
小鸟坐标系和屏幕坐标系不同,需要用camera.main.screenToWorldPoint()转换。
小鸟和相机一样远
1.用到new vector3(x,y,z)来更改小鸟坐标
2.用到new vector3(x,y,Camera.main.transforn.position.z)获取相机坐标