Files
Fishing2/Assets/Scripts/Fishing/Tackle/FVirtualTackle.cs
2025-12-26 20:35:52 +08:00

233 lines
9.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// using System.Collections;
// using Fantasy;
// using UnityEngine;
//
// namespace NBF
// {
// /// <summary>
// /// 虚拟钓组
// /// </summary>
// public class FVirtualTackle
// {
// private ItemInfo _itemInfo;
// private FPlayer _player;
//
//
// public FRod Rod;
//
//
// public FVirtualTackle(ItemInfo itemInfo, FPlayer player)
// {
// _itemInfo = itemInfo;
// _player = player;
// }
//
// public IEnumerator Create()
// {
// var parent = _player.transform;
// // parent.position = _player.transform.position;
//
//
// Rod = _itemInfo.Config.InstantiateAndComponent<FRod>(parent, Vector3.zero, Quaternion.identity);
//
//
// // var rodObject = _itemInfo.Config.Instantiate(parent, Vector3.zero, Quaternion.identity);
// // Rod = rodObject.GetComponent<FRod>();
// // if (Rod == null)
// // {
// // Rod = rodObject.AddComponent<FRod>();
// // }
// // var rodConfig = RodConfig.Get(itemInfo.ConfigId);
// // itemInfo.Config
//
// // var data = Player.Data.currentGear;
// // var rodConfig = data.rod.Config;
// // var cloneObj = rodConfig.Instantiate(parent, Vector3.zero, Player.MainArm.RodContainer.rotation);
// // if (cloneObj == null)
// // {
// // yield break;
// // }
// //
// // Rod = cloneObj.GetComponent<FRod>();
// // if (Rod == null)
// // {
// // Rod = cloneObj.AddComponent<FRod>();
// // }
// //
// //
// // if (Rod)
// // {
// // Rod.transform.localPosition = Vector3.zero;
// // Rod.transform.rotation = Player.MainArm.RodContainer.rotation;
// //
// // if (rodConfig.ring > 0)
// // {
// // var ringConfig = GameRings.Get(rodConfig.ring);
// // var ringObject = ringConfig.Instantiate(Rod.transform);
// // ringObject.SetActive(false);
// // Rod.SetRing(ringObject.GetComponent<RodRingAsset>());
// // }
// // }
// // else
// // {
// // yield break;
// // }
// //
// // if (data.line != null)
// // {
// // var linePrefab = data.line.Config.Instantiate(parent);
// // Line = linePrefab.GetComponent<FLine>();
// // }
// //
// // if (data.reel != null)
// // {
// // var reelPrefab = data.reel.Config.Create(parent);
// // Reel = reelPrefab.GetComponent<FReel>();
// // }
// //
// // if (data.bobber != null)
// // {
// // var bobberPrefab = data.bobber.Config.Create(parent);
// // Bobber = bobberPrefab.GetComponent<FFloat>();
// // }
// //
// // if (data.hook != null)
// // {
// // var hookPrefab = data.hook.Config.Create(parent);
// // Hook = hookPrefab.GetComponent<FHook>();
// // }
// //
// // if (data.bait != null)
// // {
// // var baitPrefab = data.bait.Config.Create(parent);
// //
// // if (baitPrefab.TryGetComponent<FBait>(out var bait))
// // {
// // Bait = bait;
// // }
// // }
// //
// // if (data.lure != null)
// // {
// // var baitPrefab = data.lure.Config.Create(parent);
// // if (baitPrefab.TryGetComponent<FLure>(out var lure))
// // {
// // Lure = lure;
// // }
// // }
// //
// //
// // if (data.weight != null)
// // {
// // var weightPrefab = data.weight.Config.Instantiate(parent);
// // Weight = weightPrefab.GetComponent<FWeight>();
// // }
// //
// // Debug.LogError("CreateOrHideGear");
// // yield return 1;
// // Rod.Initialize(Player, data.rod);
// // Rod.CreateFishingHandler();
// //
// // if (Line)
// // {
// // Line.Initialize(Player, data.line);
// //
// //
// // if ((bool)Rod.lineHandler.obiRopeSegment_1)
// // {
// // Rod.lineHandler.obiRopeSegment_1.GetComponent<MeshRenderer>().material =
// // Line.lineMat;
// // }
// //
// // if ((bool)Rod.lineHandler.obiRopeSegment_2)
// // {
// // Rod.lineHandler.obiRopeSegment_2.GetComponent<MeshRenderer>().material =
// // Line.lineMat;
// // }
// //
// // if ((bool)Rod.lineHandler.obiRopeSegment_3)
// // {
// // Rod.lineHandler.obiRopeSegment_3.GetComponent<MeshRenderer>().material =
// // Line.lineMat;
// // }
// // }
// //
// // if (Reel)
// // {
// // // Reel.maxReelStrength = data.reel.Config.strength;
// // // Reel.reelingSpeed = 0.5f; //slotsEquip.reel.currentSpeed;
// // Reel.reelingDrag = 0.699f; //slotsEquip.reel.currentDrag;
// // Reel.transform.SetParent(Rod.rodAsset.ReelConnector);
// // Reel.transform.localPosition = Vector3.zero;
// // Reel.transform.localEulerAngles = Vector3.zero;
// // // Reel.reelAsset.szpulaObject.GetComponent<MeshRenderer>().material = Line.szpulaMat;
// // Reel.Initialize(Player, data.reel);
// // }
// //
// // if (Bobber)
// // {
// // Bobber.floatDisplacement = data.bobber.Config.displacement;
// // // if ((double)slotsEquip.ffloat.lastSetGroundValue > 0.2)
// // // {
// // // Bobber.newDeepth = slotsEquip.ffloat.lastSetGroundValue;
// // // }
// //
// // Bobber.newDeepth = 0.5f;
// //
// // Bobber.Initialize(Player, data.bobber);
// // Bobber.transform.position = Rod.lineHandler.LineConnector_1.transform.position;
// // Bobber.gameObject.GetComponent<ConfigurableJoint>().connectedBody =
// // Rod.lineHandler.LineConnector_1.GetComponent<Rigidbody>();
// // }
// //
// //
// // if (Hook)
// // {
// // Hook.Initialize(Player, data.hook);
// //
// // Hook.transform.position = Rod.lineHandler.LineConnector_2.transform.position;
// // Hook.transform.rotation = Rod.lineHandler.LineConnector_2.transform.rotation; // 确保旋转也同步
// // var target = Rod.lineHandler.LineConnector_2.GetComponent<Rigidbody>();
// // var joint = Hook.gameObject.GetComponent<ConfigurableJoint>();
// // // // 关键设置:关闭自动锚点计算,手动设置锚点
// // // joint.autoConfigureConnectedAnchor = false;
// // // joint.anchor = Vector3.zero; // 以 Hook 自身中心为锚点
// // // joint.connectedAnchor = Vector3.zero; // 以目标物体的中心为锚点
// // joint.connectedBody = target;
// // // // 强制物理引擎立即更新变换避免1帧延迟
// // // Physics.SyncTransforms();
// // // joint.autoConfigureConnectedAnchor = false;
// // // joint.anchor = Vector3.zero;
// // // joint.connectedAnchor = Vector3.zero;
// // Rod.LureHookWaterDisplacement = Hook.GetComponent<FWaterDisplacement>();
// // }
// //
// // if (Bait)
// // {
// // Bait.Initialize(Player, data.bait);
// // Bait.transform.position = Hook.hookAsset.baitConnector.position;
// // Bait.transform.SetParent(Hook.hookAsset.baitConnector);
// // }
// //
// // if (Lure)
// // {
// // Lure.Initialize(Player, data.bait);
// // Lure.transform.position = Rod.lineHandler.LineConnector_1.transform.position;
// // Lure.gameObject.GetComponent<ConfigurableJoint>().connectedBody =
// // Rod.lineHandler.LineConnector_1.GetComponent<Rigidbody>();
// // Rod.LureHookWaterDisplacement = Lure.GetComponent<FWaterDisplacement>();
// // }
// //
// // if (Weight)
// // {
// // Weight.weight = data.weight.Config.weight;
// // Weight.Initialize(Player, data.weight);
// // }
// }
//
// public IEnumerator Destroy()
// {
// yield return 1;
// }
// }
// }