Files
MinFt/Client/Assets/Scripts/Aquarium/UI/EventFishHuntingPhoto.cs
Liubing\LB 3d8d4d18f3 first commit
先修复一下,错误的场景

删除不必要的钓场资产

修复into场景

update:更新meta文件,修复报错

update:修复资源

修复第一章节建造

修复建造第三章

update:删除多余内容

update:更新README.md

update:还原图标

update:更新README

update:更新配置
2026-04-28 02:17:22 +08:00

116 lines
4.3 KiB
C#

using cfg;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using asap.core;
public class EventFishHuntingPhoto : MonoBehaviour
{
SpriteRenderer bg_photo;
Transform fishIconRT;
RawImage rawImage;
RenderTexture rt;
GameObject fishGo;
Camera rtCamera;
Transform avatarCapture;
Transform avatarEscape;
int fieldOfView = 60;
int fishPosZ = 20;
GameObject kuang_mutated;
GameObject kuang_nml;
GameObject kuang_mutated_failed;
GameObject kuang_nml_failed;
GameObject bg_mutated;
GameObject bg_nml;
TMP_Text text_num_level;
Image tag_fish_settlement;
TMP_Text text_fish_name_settlement;
public void Init()
{
kuang_mutated = transform.Find("kuang_mutated").gameObject;
kuang_nml = transform.Find("kuang_nml").gameObject;
kuang_mutated_failed = transform.Find("kuang_mutated_failed").gameObject;
kuang_nml_failed = transform.Find("kuang_nml_failed").gameObject;
bg_mutated = transform.Find("level/bg_mutated").gameObject;
bg_nml = transform.Find("level/bg_nml").gameObject;
bg_photo = transform.Find("mask_bg2/icon_fish/Camera/bg_photo").GetComponent<SpriteRenderer>();
fishIconRT = transform.Find("mask_bg2/icon_fish");
fishIconRT.transform.position = Vector3.back * 50;
avatarCapture = fishIconRT.Find("avatarCapture");
avatarEscape = fishIconRT.Find("avatarEscape");
rtCamera = fishIconRT.Find("Camera").GetComponent<Camera>();
rawImage = transform.Find("mask_bg2/RawImage").GetComponent<RawImage>();
text_num_level = transform.Find("level/text_level_num").GetComponent<TMP_Text>();
tag_fish_settlement = transform.Find("icon_rate").GetComponent<Image>();
text_fish_name_settlement = transform.Find("text_name").GetComponent<TMP_Text>();
}
public void ShowFish(FishMovement fishMovement, bool isRob)
{
text_num_level.text = fishMovement.cardLv;
RectTransform raw = rawImage.GetComponent<RectTransform>();
rt = new RenderTexture((int)raw.rect.width, (int)raw.rect.height, 24, RenderTextureFormat.ARGB32);
rtCamera.fieldOfView = fieldOfView;
rtCamera.enabled = true;
var TankPosition = fishMovement.fishData.TankPosition;
Vector3 pos = new Vector3(TankPosition[0], TankPosition[1], TankPosition[2] + fishPosZ);
Transform avatar = isRob ? avatarCapture : avatarEscape;
pos += avatar.localPosition;
avatar.localPosition = pos;
fishGo = Instantiate(fishMovement.fish.gameObject, avatar);
Fish fish = fishGo.GetComponent<Fish>();
fish.animator.transform.localPosition = Vector3.zero;
var TankRotation = fishMovement.fishData.TankRotation;
fish.transform.localRotation = Quaternion.Euler(TankRotation[0], TankRotation[1], TankRotation[2]);
fish.transform.localScale = Vector3.one * fishMovement.fishData.TankScale * fishMovement.mutantScale;
rtCamera.targetTexture = rt;
rawImage.texture = rt;
rtCamera.Render();
}
public void ShowSettlement(FishMovement fishMovement, Sprite tagSprite, string fishName, bool isRob)
{
tag_fish_settlement.sprite = tagSprite;
text_fish_name_settlement.text = fishName;
bool isMutated = fishMovement.index < fishMovement.slotData.mutants;
kuang_mutated.SetActive(isMutated && isRob);
kuang_nml.SetActive(!isMutated && isRob);
kuang_mutated_failed.SetActive(isMutated && !isRob);
kuang_nml_failed.SetActive(!isMutated && !isRob);
bg_mutated.SetActive(isMutated);
bg_nml.SetActive(!isMutated);
}
public void SetBackground(int mapId)
{
var mapData = GContext.container.Resolve<Tables>().TbMapData.DataMap[mapId];
string prefabName = mapData.AquariumPrefab;
Transform bg = transform.Find($"bg_{prefabName}");
if (bg != null)
{
bg_photo.sprite = bg.GetComponent<Image>().sprite;
}
}
public void Cleanup()
{
if (rt != null)
{
rt.Release();
Destroy(rt);
rt = null;
}
if (fishGo != null)
{
Destroy(fishGo);
}
if (rtCamera != null)
{
rtCamera.targetTexture = null;
}
}
}