(client)feat:实现子弹定义以及生成,实现初始化动画,实现血条 (#43)

Co-authored-by: zzdxxz <2079238449@qq.com>
Co-committed-by: zzdxxz <2079238449@qq.com>
This commit is contained in:
2025-08-19 20:22:10 +08:00
committed by TheRedApricot
parent 670f778eee
commit d91210a6ff
119 changed files with 4797 additions and 2929 deletions

View File

@ -1,5 +1,6 @@
using System;
using System.Collections.Generic;
using Managers;
using Prefab;
using UnityEngine;
using UnityEngine.Events;
@ -7,9 +8,12 @@ namespace Entity
{
public class Outline : MonoBehaviour
{
public RightMenuPrefab rightMenuPrefab;
public GameObject body;
public SpriteRenderer outlineRenderer;
public CapsuleCollider2D outlineCollider;
public ProgressBarPrefab progressBarPrefab;
public Entity entity;
@ -17,12 +21,17 @@ namespace Entity
public static Vector3 minimum=new(0.5f,0.5f,0.5f);
public void Init()
public virtual void Init()
{
var size = GetSize();
outlineRenderer.size = size;
outlineCollider.direction = size.x > size.y ? CapsuleDirection2D.Horizontal : CapsuleDirection2D.Vertical;
outlineCollider.size = size;
if (progressBarPrefab)
{
progressBarPrefab.transform.localPosition += new Vector3(0f, size.y * 2 / 3, 0f);
progressBarPrefab.transform.localScale = new Vector3(size.x, 1f / 10f, 1);
}
}
public void Show()
@ -76,24 +85,21 @@ namespace Entity
private void OnMouseEnter()
{
Show();
_select = true;
}
private void OnMouseExit()
{
Hide();
_select = false;
}
private void OnMouseOver()
{
if (!entity.canSelect)
return;
// 检测是否按下的是鼠标右键
if (Input.GetMouseButtonDown(1)) // 鼠标右键对应的是按钮索引 1
{
var rightMenu = Prefab.RightMenuPrefab.Instance;
rightMenu.Init(GetMenu());
rightMenu.transform.position = Input.mousePosition;
rightMenu.Show();
RightMenuManager.GenerateRightMenu(GetMenu(), Input.mousePosition);
}
}
@ -104,6 +110,14 @@ namespace Entity
result.Add(("结束操控", EndControl));
else
result.Add(("手动操控", StartControl));
if (CameraControl.CameraControl.Instance.focusedEntity == entity)
{
result.Add(("取消跟随", ()=>CameraControl.CameraControl.Instance.focusedEntity=null));
}
else
{
result.Add(("视角跟随", ()=>CameraControl.CameraControl.Instance.focusedEntity=entity));
}
result.Add(("杀死", () => entity.Kill()));
result.Add(("变成笨蛋", BecomeDefault));
return result;