左右移动角色

时间:2013-06-27 13:01:26

标签: unity3d unityscript

你好我跟着一个关于如何制作一个自上而下的射手的教程,代码使我的角色对着我的鼠标旋转,我可以使用W和S向前和向后移动。但是我也希望能够向右移动并且在使用A和D时,我不能使用javascript和unity3d中的代码。我在c#中执行大部分编码。制作教程的那个人很难解释一些代码实际上做了什么。

以下是代码:

#pragma strict

var speed : float = 20.0;
var rotateSpeed : float = 2.0;

function Update () {

var controller : CharacterController = GetComponent(CharacterController);
transform.Rotate(0,Input.GetAxis("Horizontal") * rotateSpeed,0);

var forward : Vector3 = transform.TransformDirection(Vector3.forward);
var curSpeed : float = speed * Input.GetAxis("Vertical");
controller.SimpleMove(forward * curSpeed);

var position = Input.mousePosition;
var newposition = Vector3(position.x,position.y,camera.main.transform.position.y- transform.position.y);
var lastposition = camera.main.ScreenToWorldPoint(newposition);
transform.LookAt(lastposition);

}

@script RequireComponent(CharacterController)

1 个答案:

答案 0 :(得分:1)

人员编制代码(左转和右转不动)

if(Input.GetKeyUp("d")){ 
    controller.SimpleMove(right * staffingSpeed);
}
else if(Input.GetKeyUp("a")) {
    controller.SimpleMove(-right * staffingSpeed);
}

在update()函数中编写代码并在函数外部创建一个变量“staffingSpeed”并从inspector中设置它 要么 将“staffingSpeed”替换为常数数值,例如5