鼠标进行移动"/>
2D捕鱼大战的枪如何跟着屏幕鼠标进行移动
#捕鱼大战游戏中的枪如何跟着鼠标进行移动
先上代码
`using UnityEngine;
public class Rotated : MonoBehaviour {
public RectTransform UGUICanvas;
public Camera mainCamera;
// Update is called once per frame
void Update () {Vector3 mousePos;RectTransformUtility.ScreenPointToWorldPointInRectangle(UGUICanvas, new Vector2(Input.mousePosition.x, Input.mousePosition.y), mainCamera, out mousePos);//!!!这里我把World写成local所以出现了语义错误,所以编译器一直显示不能把out vector3转换成vector2 float z;if(mousePos.x > transform.position.x)//判断枪口转左边还是转右边{z = -Vector3.Angle(Vector3.up, mousePos - transform.position);//获取鼠标和枪中心的连线,枪口所指位置的夹角//Vector3.Angle(A.posion,B.position);//Vector3.Angle这个则是计算A点与B点以世界坐标原点为夹角的角度// Vector3.up 是物体自身的绿色轴向(Y轴)在世界坐标中所指向的位置。//mousePos - transform.position是鼠标所在向量减去枪中心点所得的线}else{z = Vector3.Angle(Vector3.up, mousePos - transform.position);}transform.localRotation = Quaternion.Euler(0, 0, z);
}
}`
将屏幕空间上的点转换为位于给定RectTransform平面上的世界空间中的位置。cam参数应该是与屏幕点相关的相机,我这边用的maincamera。对于Canvas设置为“Screen Space - Overlay mode”模式的情况,cam参数应该为null,不过捕鱼大战我用的Screen Space - camera模式。
更多推荐
2D捕鱼大战的枪如何跟着屏幕鼠标进行移动
发布评论