【发布时间】:2014-07-01 21:31:25
【问题描述】:
我是 UnityScript 的新手,我有以下代码可以在“Z”轴上向前移动游戏对象,但需要一些改进。让我解释一下。
当单击 GUI.Button 时脚本运行。游戏对象开始移动……直到无穷远。 我试图让它移动到所需的位置(例如一个空的游戏对象位置),但根本没有用。
我应该如何优化此代码 sn-p 以在第一次 GUI.Button 单击时将游戏对象移动到所需位置并在返回单击时返回到起始位置?
此外,是否可以在同一个 GUI.Button 点击时逐步进行此动作?
这里是sn-p的代码:
#pragma strict
// member variables (declared outside any function)
var startPos: Vector3;
var endPos : Vector3;
var cachedTransform : Transform;
private static var isforward = false;
// save pos before moving:
startPos = transform.position;
// make the gameObject transform, then restore the initial position when needed:
transform.position = startPos;
function Awake() {
startPos = transform.localPosition;
}
function Start() {
cachedTransform = transform;
startPos = cachedTransform.position;
}
function FixedUpdate() {
if(isforward){
var translation : float;
if (cachedTransform.position.x == endPos)
{
cachedTransform.position = startPos;
}
else
{
translation = Time.deltaTime * 2;
cachedTransform.Translate(0, 0, translation);
cachedTransform.Translate(Vector3.forward * translation);
}
}
}
static function doforward ()
{
isforward = !isforward;
}
提前感谢大家的回答。
【问题讨论】:
标签: user-interface unity3d position transform game-physics