实现子弹类
学习目标
- 实现鼠标瞄准准心
操作流程
新建 Canvas
- 在 Heriarchy 中新建 Canvas,并在其中新建 Image
- 将准心图片拖入 Image 组件的 Sprite 中
- 将 Canvas 的 Render Mode 改为 Screen Space-Camera,并将 Main Camera 拖入 Render Camera 上
- 实现 GunCursor 类
csharp
using UnityEngine;
public class GunCursor : MonoBehaviour
{
private float pressedTime = 0f; // 按下时间
void Update()
{
// 获取鼠标位置
Vector2 mousePosition = Input.mousePosition;
// 转换为画布坐标
RectTransformUtility.ScreenPointToLocalPointInRectangle(
transform.parent.GetComponent<RectTransform>(),
mousePosition,
Camera.main,
out Vector2 localPoint
);
// 设置光标位置
transform.localPosition = localPoint;
if (Input.GetMouseButton(0))
{
pressedTime += Time.deltaTime; // 增加按下时间
}
else
{
pressedTime -= Time.deltaTime;
}
pressedTime = Mathf.Clamp(pressedTime, 0, 0.5f);
transform.localScale = Mathf.Lerp(1, 1.2f, pressedTime * 2) * Vector3.one;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31