(client)feat:实现子弹定义以及生成,实现初始化动画,实现血条 (#43)
Co-authored-by: zzdxxz <2079238449@qq.com> Co-committed-by: zzdxxz <2079238449@qq.com>
This commit is contained in:
53
Client/Assets/Scripts/Utils/MousePosition.cs
Normal file
53
Client/Assets/Scripts/Utils/MousePosition.cs
Normal file
@ -0,0 +1,53 @@
|
||||
using UnityEngine;
|
||||
|
||||
namespace Utils
|
||||
{
|
||||
public static class MousePosition
|
||||
{
|
||||
/// <summary>
|
||||
/// 获取鼠标的屏幕位置(以像素为单位)。
|
||||
/// </summary>
|
||||
/// <returns>鼠标的屏幕位置 (Vector2)。</returns>
|
||||
public static Vector2 GetScreenPosition()
|
||||
{
|
||||
return Input.mousePosition;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取鼠标的二维世界位置(基于主摄像机的屏幕到世界转换)。
|
||||
/// </summary>
|
||||
/// <param name="camera">用于计算的摄像机,默认为主摄像机。</param>
|
||||
/// <returns>鼠标的二维世界位置 (Vector2)。</returns>
|
||||
public static Vector2 GetWorldPosition(Camera camera = null)
|
||||
{
|
||||
// 如果未指定摄像机,则使用主摄像机
|
||||
if (!camera)
|
||||
{
|
||||
camera = Camera.main;
|
||||
}
|
||||
|
||||
// 获取鼠标屏幕位置
|
||||
var mouseScreenPosition = Input.mousePosition;
|
||||
|
||||
// 将屏幕坐标转换为世界坐标
|
||||
var worldPosition = camera.ScreenToWorldPoint(mouseScreenPosition);
|
||||
|
||||
// 返回二维坐标 (忽略 z 轴)
|
||||
return new Vector2(worldPosition.x, worldPosition.y);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取鼠标的二维世界位置并进行整数吸附(基于主摄像机的屏幕到世界转换)。
|
||||
/// </summary>
|
||||
/// <param name="camera">用于计算的摄像机,默认为主摄像机。</param>
|
||||
/// <returns>吸附后的二维世界位置 (Vector2Int)。</returns>
|
||||
public static Vector3Int GetSnappedWorldPosition(Camera camera = null)
|
||||
{
|
||||
// 获取世界位置
|
||||
var worldPosition = GetWorldPosition(camera);
|
||||
|
||||
// 对世界位置进行整数吸附
|
||||
return Vector3Int.RoundToInt(worldPosition);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user