这里的主要是通过获得玩家位置和鼠标的位置来计算出玩家指向鼠标的向量,在把向量赋值给夫对象的x轴来进行的旋转,子对象会绕着父对象进行旋转。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using static UnityEngine.EventSystems.StandaloneInputModule;
public class WapeRotation : MonoBehaviour
{
// Start is called before the first frame update
public GameObject tr;
void Start()
{
tr = GameObject.Find("tile_0088");
}
void Update()
{
Rotation(InputMouse());
}
private Vector3 InputMouse()
{
Vector3 mouse = Input.mousePosition;
//得到鼠标位置
mouse = Camera.main.ScreenToWorldPoint(mouse);
//把屏幕位置转化成世界位置
Vector3 player_position = tr.transform.position;
//获得玩家位置
Vector3 f = mouse - player_position;
//求出玩家指向鼠标的向量
f.z = 0f;
//z轴赋值为0;
Debug.Log(f);
Debug.Log(f.normalized);
return f.normalized;
}
private void Rotation(Vector3 angle)
{
this.transform.right = angle;
//旋转角度
}
}
挂载