我是团结三维游戏引擎的新手。我正在创建一个木纹益智游戏。我想根据鼠标位置移动木材的一小部分。我使用的是刚体2D。移动时我也想检测来自其他木质部件和任何其他障碍物的碰撞。请帮帮我。
答案 0 :(得分:0)
你的脚本可能看起来像这样(这取决于你正在寻找的精确功能):
#pragma strict
private var moveWithMouse : boolean = false;
private var lastMousePosition : Vector3;
function Update()
{
var changeInMousePosition : Vector3 = Vector3(0,0,0);
if (lastMousePosition != null)
{
changeInMousePosition = Input.mousePosition-lastMousePosition;
}
lastMousePosition = Input.mousePosition;
if (moveWithMouse)
{
transform.position += Camera.main.ScreenToWorldPoint(changeInMousePosition) - Camera.main.ScreenToWorldPoint(Vector3(0,0,0));
}
}
function OnMouseDown()
{
moveWithMouse = true;
}
function OnMouseUp()
{
moveWithMouse = false;
}
以下是解释上述代码的奇特部分的所有文档页面。
http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseDown.html http://docs.unity3d.com/ScriptReference/MonoBehaviour.OnMouseUp.html http://docs.unity3d.com/ScriptReference/Input-mousePosition.html http://docs.unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html
如果代码中有任何新内容并且未在文档页面中介绍(例如Vector3,Transform,Update函数等等),那么在尝试项目之前,您可以从访问初学者的统一指南中受益
https://unity3d.com/learn/tutorials/modules/beginner/live-training-archive/coding-for-the-absolute-beginner
要使用我的脚本,您必须:
在创建和自定义您自己的游戏时,学习如何使用Unity的编辑器甚至可能比编程本身更重要,所以如果您不知道如何执行上述操作(创建 GameObject ,并添加组件),您应该参考Unity编辑器的初学者指南。
这是关于Unity编辑器的一组教程页面: http://docs.unity3d.com/Manual/UnityBasics.html
这是我认为最重要的页面: http://docs.unity3d.com/Manual/UnityBasics.html
希望这会有所帮助。干杯