你好我跟着一个关于如何制作一个自上而下的射手的教程,代码使我的角色对着我的鼠标旋转,我可以使用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)
答案 0 :(得分:1)
人员编制代码(左转和右转不动)
if(Input.GetKeyUp("d")){
controller.SimpleMove(right * staffingSpeed);
}
else if(Input.GetKeyUp("a")) {
controller.SimpleMove(-right * staffingSpeed);
}
在update()函数中编写代码并在函数外部创建一个变量“staffingSpeed”并从inspector中设置它 要么 将“staffingSpeed”替换为常数数值,例如5