【发布时间】:2015-07-24 05:41:30
【问题描述】:
目前我正在尝试制作一个非常简单的自上而下的射击游戏。例如,我目前有一个 3d 盒子,我正在尝试获取玩家的鼠标位置并将盒子的 z 轴旋转到该角度。我有一些关于如何解决这个问题的小想法,但我似乎无法将它们组合成有效的代码。有人可以帮忙吗?
using UnityEngine;
using System.Collections;
public class MoveOnAxisInput : MonoBehaviour
{
public string horizontalAxis = "Horizontal";
public string verticalAxis = "Vertical";
public float speed = 1.0f;
// Update is called once per frame
void Update ()
{
transform.position += (Vector3.right*Input.GetAxis(horizontalAxis) + Vector3.forward*Input.GetAxis(verticalAxis)).normalized*speed*Time.deltaTime;
Vector3 mousePos = new Vector3(0, 10, Input.mousePosition.z);
Vector3 lookPos = Camera.main.ScreenToWorldPoint(mousePos);
lookPos = lookPos - transform.position;
float angle = Mathf.Atan2(lookPos.z, lookPos.x) * Mathf.Rad2Deg;
transform.rotation = Quaternion.AngleAxis(angle, Vector3.forward);
}
【问题讨论】:
标签: unity3d