223 lines
8.6 KiB
C#
223 lines
8.6 KiB
C#
using System.Collections;
|
||
using Fantasy;
|
||
using UnityEngine;
|
||
|
||
namespace NBF
|
||
{
|
||
/// <summary>
|
||
/// 钓组
|
||
/// </summary>
|
||
public class FTackle : MonoBehaviour
|
||
{
|
||
private ItemInfo _itemInfo;
|
||
|
||
public static FTackle Create(ItemInfo itemInfo)
|
||
{
|
||
var root = SceneSettings.Instance.GearNode;
|
||
var obj = new GameObject($"Rod_{itemInfo.ConfigId}").AddComponent<FTackle>();
|
||
obj.transform.SetParent(root.transform);
|
||
obj.transform.localPosition = Vector3.zero;
|
||
obj.transform.localRotation = Quaternion.identity;
|
||
obj.transform.localScale = Vector3.one;
|
||
return obj;
|
||
}
|
||
|
||
public IEnumerator Show(ItemInfo itemInfo)
|
||
{
|
||
_itemInfo = itemInfo;
|
||
yield return 1;
|
||
|
||
// var parent = GearParent;
|
||
// parent.position = Player.transform.position;
|
||
//
|
||
// 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 Remove()
|
||
{
|
||
yield return 1;
|
||
}
|
||
}
|
||
} |