processing中鼠标交互很方便
void setup(){
size(666 ,666);
}
void draw(){
background(0);
ellipse(mouseX,mouseY,66,66);
}
但是unity中分为屏幕坐标和世界坐标
processing中的鼠标坐标在unity中是屏幕坐标
所以,需要把屏幕坐标转换为世界坐标
public GameObject obj;
void Start()
{}
void FixedUpdate()
{
//屏幕坐标转为世界坐标
Vector3 s2w = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x , Input.mousePosition.y , -Camera.main.transform.position.z));
obj.transform.position = new Vector3(s2w.x. ,s2w.y. ,s2w.z);
}
processing中的mouseX,在unity中为Input.mousePosition.x
Camera.main.ScreenToWorldPoint其中的(screen = 屏幕坐标,to = 转换,worldpoint = 世界坐标)
这篇博客介绍了如何在Unity中将Processing的鼠标交互方式应用于3D场景。Processing中的鼠标坐标在Unity中被视为屏幕坐标,需要通过Camera.main.ScreenToWorldPoint方法将它们转换为世界坐标。示例代码展示了如何实现这一转换,使得可以像在Processing中一样在Unity中绘制图形。
2427

被折叠的 条评论
为什么被折叠?



