我的问题如下: 我有一个进行比赛的场景。 我还可以通过鼠标四处移动(例如在《模拟人生》中之类的东西,例如,当我的鼠标位于屏幕的左侧区域时,摄像头也将移至该位置) 但是WASD键也可以做到这一点,我不希望这样做。 尤其是因为我在那里聊天,每次我在其中键入内容时,相机都会移动...
我尝试通过项目设置>输入并删除alt键(wasd)禁用它,但这无济于事。 (我也不知道为什么)
非常感谢!
代码如下:
void borderMovement(){
if (Input.mousePosition.x >= Screen.width - border) {
transform.position += vRightDirection * Time.deltaTime * mouseSpeed;
} else if (Input.mousePosition.x <= 0 + border) {
transform.position += vLeftDirection * Time.deltaTime * mouseSpeed;
} else if (Input.mousePosition.y >= Screen.height - border) {
transform.position += vUpDirection * Time.deltaTime * mouseSpeed;
} else if (Input.mousePosition.y <= 0 + border) {
transform.position += vDownDirection * Time.deltaTime * mouseSpeed;
}
}
border
只是一个浮点数,而v...Directions
是Vector3。
答案 0 :(得分:1)
是否可以冻结播放器/摄像机的位置?
如果您查看该组件的刚体, 展开约束菜单。
我猜X,Y和Z的冻结位置未选中。
如果您检查X,Y和Z的冻结旋转怎么办?
我知道它无关紧要,但是我有一个EnemyMovement脚本的代码,可以将其扩展为在“冻结”时关闭GameObjects的移动
Enemy1Movement.js:
#pragma strict
var initPos : Vector3;
var enemyWiggle : Vector2;
public var enemySpeed : float;
public var isFrozen : boolean = false;
function Start () {
initPos = transform.position;
}
function Update () {
if (isFrozen == false){
transform.position.x = initPos.x + Mathf.PingPong(Time.time * enemySpeed, enemyWiggle.x);
transform.position.z = initPos.z + Mathf.PingPong(Time.time * enemySpeed, enemyWiggle.y);
}
}