- 我的场景中有一个名为“玩家”的对象。
- 我还有多个名为“树”的对象。
现在,我希望每当用户单击“树”时,“玩家”缓慢移动到该位置(使用 Lerp 或 moveTowards)对我来说都可以。
现在我对这段代码有两个问题:
我希望这段代码是通用的
每当我单击树对象时,我都希望将播放器移向该树。我不想编写此脚本并将其附加到每个树对象。
我应该把脚本放在哪里?
目前我将此代码附加到每个树对象。
我应该如何写下来,以便它适用 于场景中的每个树对象?
如果在移动时再次单击,则取消之前的移动并开始移动到新位置
- 我应该如何编写它,以便如果我在 玩家向另一个被点击的对象移动时单击另一个对象,玩家将停止向其先前位置移动,并开始向新点移动。
我在适应新的 UnityScript 时遇到了一些麻烦。我完全来自 Javascript 背景,看起来它们中的 2 种语言具有非常不同的语义。因此,如果有人用代码回答这个问题(这是我想要的:)),我也会很感激一些冗长的评论。
我目前这样做:
var playerIsMoving = false;
Public playerObject: Gameobject; //I drag in the editor the player in this public var
function update(){
var thisTreePosition = transform.point; //this store the X pos of the tree
var playerPosition = player.transform.point;
if(playerIsMoving){
player.transform.position = Vector2.MoveTowards(playerPosition, thisTreePosition, step);
}
}
function OnMouseDown(){
playerIsMoving = true;
}
我是在没有 Unity 的家里写的,我忘记了代码语法,因此希望上面的代码有拼写错误或问题,在工作中它工作得很好,除了非常粗糙和简单。