我制作了一个脚本,在该脚本中,我根据x轴的x位置更改了玩家的方向。但是我想做一些事情,以便角色可以根据鼠标的y位置向上和向下查找。我试图实现它,但是它似乎没有用,我也不知道为什么。
这是我的剧本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CharacterMovement : MonoBehaviour
{
CharacterController characterController;
private float xaxis = 0.0f;
private float yaxis = 0.0f;
public float horizontalMovementSpeed = 2f;
public float verticalMovementSpeed = 2f;
public float xSensitivity = 2f;
public float ySensitivity = 2f;
public Transform neck;
void Start()
{
characterController = GetComponent<CharacterController>();
Cursor.lockState = CursorLockMode.Locked;
}
void Update ()
{
if(!characterController.isGrounded)
{
transform.Translate(Input.GetAxis("Horizontal") * horizontalMovementSpeed * Time.deltaTime, 0f, Input.GetAxis("Vertical") * verticalMovementSpeed * Time.deltaTime);
xaxis += Input.GetAxis("Mouse X") * xSensitivity;
yaxis += Input.GetAxis("Mouse Y") * ySensitivity;
transform.eulerAngles = new Vector2(0, xaxis);
yaxis = Mathf.Clamp(yaxis, -40, 85);
neck.eulerAngles = new Vector2(yaxis, 0);
}
}
}
答案 0 :(得分:1)
我假设您正在制作2D游戏,因为您的代码使用Vector2s。
您可以更改实现以使用transform.LookAt方法,并通过鼠标位置。
https://docs.unity3d.com/ScriptReference/Transform.LookAt.html