C# 功能未从摄像机获取位置
当您按下鼠标时,程序不会从屏幕上获取该位置,除非您在播放器上单击 这个程序应该从mousedown和mouseup的位置获取向量,并对播放器施加恒定的力,但是mousedown只有在您按下播放器时才会激活(如果您在其他任何地方释放鼠标,它就会起作用)。如果有帮助的话,主摄像机将作为玩家游戏对象的父对象C# 功能未从摄像机获取位置,c#,unity3d,C#,Unity3d,当您按下鼠标时,程序不会从屏幕上获取该位置,除非您在播放器上单击 这个程序应该从mousedown和mouseup的位置获取向量,并对播放器施加恒定的力,但是mousedown只有在您按下播放器时才会激活(如果您在其他任何地方释放鼠标,它就会起作用)。如果有帮助的话,主摄像机将作为玩家游戏对象的父对象 void OnMouseDown() { mouseDown = Camera.main.ScreenToViewportPoint(Input.mousePosition); }
void OnMouseDown()
{
mouseDown = Camera.main.ScreenToViewportPoint(Input.mousePosition);
}
void OnMouseUp()
{
if (!thrown) //verifica che non sia stato lanciato
{
mouseUp = Camera.main.ScreenToViewportPoint(Input.mousePosition);
var force = fixedLaunch(mouseDown - mouseUp);
GetComponent<Rigidbody2D>().velocity = new Vector2(0, 0);
GetComponent<ConstantForce2D>().force = force * speed;
thrown = true;
StartCoroutine(waiter(delay));
}
}
void OnMouseDown()
{
mouseDown=Camera.main.ScreenToViewportPoint(Input.mousePosition);
}
void OnMouseUp()
{
如果(!抛出)//verifica che non sia stato lanciato
{
mouseUp=Camera.main.ScreenToViewportPoint(Input.mousePosition);
var-force=固定发射(mouseDown-mouseUp);
GetComponent().velocity=新向量2(0,0);
GetComponent().力=力*速度;
抛出=真;
开始例行程序(服务员(延迟));
}
}
它应该从按下鼠标按钮和从屏幕上的任何位置释放矢量来创建矢量,而不是只在按下播放器时工作,这正是所需的行为。根据Unity脚本文档: 当用户在GUI元素或碰撞器上按下鼠标按钮时,调用OnMouseDown 当用户释放鼠标按钮时,调用OnMouseUp 如果你想让它捕捉屏幕上任何地方的鼠标点击,你可能想把你的脚本附加到画布上,而不是你的玩家游戏对象上 编辑以回答以下评论: 将其附加到画布,然后添加:
public GameObject playerObject;
在“检查员”中,将其引用到您的玩家。
然后在脚本中对其应用力,或者在附加到播放机的脚本上调用函数(如果愿意)
否则,您可以在Update()中使用
这正是我们想要的行为。根据Unity脚本文档:
当用户在GUI元素或碰撞器上按下鼠标按钮时,调用OnMouseDown
当用户释放鼠标按钮时,调用OnMouseUp
如果你想让它捕捉屏幕上任何地方的鼠标点击,你可能想把你的脚本附加到画布上,而不是你的玩家游戏对象上
编辑以回答以下评论:
将其附加到画布,然后添加:
public GameObject playerObject;
在“检查员”中,将其引用到您的玩家。
然后在脚本中对其应用力,或者在附加到播放机的脚本上调用函数(如果愿意)
否则,您可以在Update()中使用
我已经解决了这个问题(大约一周前),而不是使用OnMouseDown()和OnMouseUp(),我在Update()中编写了代码,它工作得非常好我已经解决了这个问题(大约一周前),而不是使用OnMouseDown()和OnMouseUp(),我在Update()中编写了代码而且它工作得非常完美除了玩家,我不能将脚本附加到其他任何东西上,因为它必须对脚本施加力。我试着在相机上扣动扳机,但如果不是在播放器上,它仍然不起作用。我更新了回答以回复你的评论。我不能将脚本附加到任何其他内容上,除了播放器,因为它必须对它施加力。我试着在摄像机上扣动扳机,但如果不在播放机上,它仍然不起作用。请更新答案以回复您的评论。