diff --git a/Assets/ResRaw/Fgui/Common/Common_atlas0.png b/Assets/ResRaw/Fgui/Common/Common_atlas0.png
index 12973337c..35baddb41 100644
Binary files a/Assets/ResRaw/Fgui/Common/Common_atlas0.png and b/Assets/ResRaw/Fgui/Common/Common_atlas0.png differ
diff --git a/Assets/ResRaw/Fgui/Common/Common_fui.bytes b/Assets/ResRaw/Fgui/Common/Common_fui.bytes
index 4c563f8d6..0db222ea2 100644
Binary files a/Assets/ResRaw/Fgui/Common/Common_fui.bytes and b/Assets/ResRaw/Fgui/Common/Common_fui.bytes differ
diff --git a/Assets/Scripts/Common/Assets/PlayerModelAsset.cs b/Assets/Scripts/Common/Assets/PlayerModelAsset.cs
index bdeafdd90..51be07e54 100644
--- a/Assets/Scripts/Common/Assets/PlayerModelAsset.cs
+++ b/Assets/Scripts/Common/Assets/PlayerModelAsset.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using KINEMATION.MagicBlend.Runtime;
using RootMotion.FinalIK;
using UnityEngine;
diff --git a/Assets/Scripts/Common/Assets/PlayerModelAsset.cs.meta b/Assets/Scripts/Common/Assets/PlayerModelAsset.cs.meta
index 90a8f8683..92f35a059 100644
--- a/Assets/Scripts/Common/Assets/PlayerModelAsset.cs.meta
+++ b/Assets/Scripts/Common/Assets/PlayerModelAsset.cs.meta
@@ -1,3 +1,2 @@
fileFormatVersion: 2
-guid: 553e656eacf648afb33751a88352d216
-timeCreated: 1757836335
\ No newline at end of file
+guid: 553e656eacf648afb33751a88352d216
\ No newline at end of file
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/Anim.meta b/Assets/Scripts/Fishing/New/View/Player/States/Anim.meta
new file mode 100644
index 000000000..59a6141c7
--- /dev/null
+++ b/Assets/Scripts/Fishing/New/View/Player/States/Anim.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: 18a6db7ab47a454ba05592a6ae895bb9
+timeCreated: 1774362636
\ No newline at end of file
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/IPlayerThrowAnimation.cs b/Assets/Scripts/Fishing/New/View/Player/States/IPlayerThrowAnimation.cs
new file mode 100644
index 000000000..8a4cd8df1
--- /dev/null
+++ b/Assets/Scripts/Fishing/New/View/Player/States/IPlayerThrowAnimation.cs
@@ -0,0 +1,20 @@
+using UnityEngine;
+
+namespace NBF
+{
+ public interface IPlayerThrowAnimation
+ {
+ bool IsPlaying { get; }
+ void Play(ThrowAnimationRequest request);
+ void Tick(float deltaTime);
+ void Stop(bool snapToTarget);
+ }
+
+ public struct ThrowAnimationRequest
+ {
+ public LureController Lure;
+ public Vector3 StartPosition;
+ public Vector3 Forward;
+ public float ChargedProgress;
+ }
+}
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/IPlayerThrowAnimation.cs.meta b/Assets/Scripts/Fishing/New/View/Player/States/IPlayerThrowAnimation.cs.meta
new file mode 100644
index 000000000..2a2d0d35d
--- /dev/null
+++ b/Assets/Scripts/Fishing/New/View/Player/States/IPlayerThrowAnimation.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 51e9c4e20e460b34ca8ec4de6b7cab4b
\ No newline at end of file
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/LureThrowTrajectory.cs b/Assets/Scripts/Fishing/New/View/Player/States/LureThrowTrajectory.cs
deleted file mode 100644
index 6687ba214..000000000
--- a/Assets/Scripts/Fishing/New/View/Player/States/LureThrowTrajectory.cs
+++ /dev/null
@@ -1,230 +0,0 @@
-using System.Collections.Generic;
-using UnityEngine;
-using DG.Tweening;
-using System;
-
-namespace NBF
-{
- ///
- /// 抛竿输入参数
- ///
- [Serializable]
- public struct ThrowInput
- {
- [Range(0, 1)] public float power; // 力度 0-1
- [Range(5, 50)] public float lureWeight; // 钓饵重量 g
- [Range(0.1f, 1f)] public float lineDiameter; // 线直径 mm
- public Vector3 windDirection;
- public float windStrength;
- }
-
- ///
- /// 路亚抛竿轨迹控制器
- /// 使用预计算轨迹 + DOTween动画,实现确定性抛竿
- ///
- public class LureThrowTrajectory : IDisposable
- {
- // 物理常量
- private const float AirDensity = 1.225f;
-
- // 默认参数
- protected float _minThrowPower = 15f;
- protected float _maxThrowPower = 45f;
- private float _dragCoefficient = 0.2f;
- private float _lureArea = 0.001f;
- private float _timeStep = 0.02f;
- private int _maxSteps = 500;
-
- private Sequence _throwSequence;
- private List _trajectory;
-
- public bool IsPlaying => _throwSequence != null && _throwSequence.IsPlaying();
- public List Trajectory => _trajectory;
-
- ///
- /// 计算抛竿轨迹
- ///
- public List CalculateTrajectory(ThrowInput input, Vector3 startPos, Vector3 throwDirection)
- {
- _trajectory = new List();
-
- Vector3 position = startPos;
- Vector3 direction = throwDirection.normalized;
- float throwPower = Mathf.Lerp(_minThrowPower, _maxThrowPower, input.power);
- Vector3 velocity = direction * throwPower;
-
- float lureMass = input.lureWeight / 1000f;
- Vector3 windDir = input.windDirection.normalized;
- float windStrength = input.windStrength;
-
- float currentTime = 0f;
- int steps = 0;
-
- while (currentTime < 10f && steps < _maxSteps)
- {
- if (position.y <= 0f) break;
-
- // 风力影响
- float windInfluenceFactor = Mathf.Clamp01(currentTime / 1.5f);
- Vector3 windVelocity = windDir * windStrength * windInfluenceFactor;
- Vector3 relVelocity = velocity - windVelocity;
-
- // 空气阻力
- float dragMag = 0.5f * AirDensity * relVelocity.sqrMagnitude * _dragCoefficient * _lureArea;
-
- // 钓线阻力
- float lineLength = Vector3.Distance(
- new Vector3(position.x, 0, position.z),
- new Vector3(startPos.x, 0, startPos.z));
- float lineRadius = input.lineDiameter / 2000f;
- float lineArea = lineLength * (lineRadius * 2f);
- float lineDragMag = 0.5f * AirDensity * velocity.sqrMagnitude * _dragCoefficient * lineArea;
- Vector3 lineDragForce = -velocity.normalized * lineDragMag;
-
- Vector3 dragForce = -relVelocity.normalized * dragMag;
- Vector3 totalForce = dragForce + lineDragForce;
- Vector3 acceleration = Physics.gravity + totalForce / lureMass;
-
- velocity += acceleration * _timeStep;
- position += velocity * _timeStep;
-
- _trajectory.Add(position);
- currentTime += _timeStep;
- steps++;
- }
-
- return _trajectory;
- }
-
- ///
- /// 执行抛竿动画
- ///
- public void ExecuteThrow(
- Transform lureTransform,
- Rigidbody lureRigidbody,
- List trajectory,
- float duration,
- Action onComplete = null)
- {
- if (trajectory == null || trajectory.Count < 2)
- {
- onComplete?.Invoke();
- return;
- }
-
- // 停止之前的动画
- Kill();
-
- // 设置为运动学模式
- lureRigidbody.isKinematic = true;
- lureRigidbody.useGravity = false;
-
- // 创建路径动画
- _throwSequence = DOTween.Sequence();
-
- // 使用 DOPath 沿路径移动
- var pathArray = trajectory.ToArray();
- _throwSequence.Append(
- lureTransform.DOPath(pathArray, duration, PathType.Linear, PathMode.Full3D)
- .SetEase(Ease.Linear)
- .SetLookAt(0.01f) // 让Lure朝向运动方向
- );
-
- _throwSequence.OnComplete(() =>
- {
- // 动画结束,恢复物理
- lureRigidbody.isKinematic = false;
- lureRigidbody.useGravity = true;
- lureRigidbody.linearVelocity = Vector3.zero;
- lureRigidbody.angularVelocity = Vector3.zero;
- onComplete?.Invoke();
- });
- }
-
- ///
- /// 计算合适的飞行时间(基于轨迹长度)
- ///
- public float CalculateDuration(List trajectory, float speedFactor = 1f)
- {
- if (trajectory == null || trajectory.Count < 2) return 1f;
-
- float totalLength = 0f;
- for (int i = 1; i < trajectory.Count; i++)
- {
- totalLength += Vector3.Distance(trajectory[i - 1], trajectory[i]);
- }
-
- // 根据轨迹长度计算时间,越长越慢
- return Mathf.Clamp(totalLength / (20f * speedFactor), 0.5f, 3f);
- }
-
- ///
- /// 使用简化轨迹(减少点位,优化性能)
- ///
- public List SimplifyTrajectory(List points, float tolerance = 0.1f)
- {
- if (points == null || points.Count < 3) return new List(points ?? new List());
-
- var result = new List();
- SimplifySection(points, 0, points.Count - 1, tolerance, result);
- result.Add(points[points.Count - 1]);
- return result;
- }
-
- private void SimplifySection(List points, int start, int end, float tolerance, List result)
- {
- if (end <= start + 1) return;
-
- float maxDistance = -1f;
- int index = -1;
-
- for (int i = start + 1; i < end; i++)
- {
- float distance = PerpendicularDistance(points[i], points[start], points[end]);
- if (distance > maxDistance)
- {
- maxDistance = distance;
- index = i;
- }
- }
-
- if (maxDistance > tolerance)
- {
- SimplifySection(points, start, index, tolerance, result);
- result.Add(points[index]);
- SimplifySection(points, index, end, tolerance, result);
- }
- }
-
- private float PerpendicularDistance(Vector3 point, Vector3 lineStart, Vector3 lineEnd)
- {
- if (lineStart == lineEnd) return Vector3.Distance(point, lineStart);
- Vector3 projected = Vector3.Project(point - lineStart, lineEnd - lineStart);
- return Vector3.Distance(point, lineStart + projected);
- }
-
- public void Kill()
- {
- if (_throwSequence != null)
- {
- _throwSequence.Kill();
- _throwSequence = null;
- }
- }
-
- public void Dispose()
- {
- Kill();
- _trajectory?.Clear();
- }
-
- ///
- /// 设置抛竿力度范围
- ///
- public void SetPowerRange(float min, float max)
- {
- _minThrowPower = min;
- _maxThrowPower = max;
- }
- }
-}
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/LureThrowTrajectory.cs.meta b/Assets/Scripts/Fishing/New/View/Player/States/LureThrowTrajectory.cs.meta
deleted file mode 100644
index 17b9b745b..000000000
--- a/Assets/Scripts/Fishing/New/View/Player/States/LureThrowTrajectory.cs.meta
+++ /dev/null
@@ -1,2 +0,0 @@
-fileFormatVersion: 2
-guid: cc9b0a5776333e54d9b96a7f6104891e
\ No newline at end of file
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/ParabolaPlayerThrowAnimation.cs b/Assets/Scripts/Fishing/New/View/Player/States/ParabolaPlayerThrowAnimation.cs
new file mode 100644
index 000000000..546636ba8
--- /dev/null
+++ b/Assets/Scripts/Fishing/New/View/Player/States/ParabolaPlayerThrowAnimation.cs
@@ -0,0 +1,159 @@
+using UnityEngine;
+
+namespace NBF
+{
+ public class ParabolaPlayerThrowAnimation : IPlayerThrowAnimation
+ {
+ private const int TrajectorySampleCount = 24;
+
+ private readonly float _minThrowDistance;
+ private readonly float _maxThrowDistance;
+ private readonly float _throwDuration;
+ private readonly float _throwArcHeight;
+ private readonly float _targetHeightOffset;
+ private readonly AnimationCurve _throwHeightCurve;
+ private readonly Vector3[] _lastTrajectoryPoints = new Vector3[TrajectorySampleCount + 1];
+
+ private bool _hasLastTrajectory;
+ private float _chargedProgress;
+ private float _castElapsedTime;
+ private Vector3 _castStartPos;
+ private Vector3 _castTargetPos;
+ private LureController _castingLure;
+
+ public bool IsPlaying => _castingLure != null;
+
+ public ParabolaPlayerThrowAnimation(
+ float minThrowDistance = 6f,
+ float maxThrowDistance = 25f,
+ float throwDuration = 0.65f,
+ float throwArcHeight = 4f,
+ float targetHeightOffset = 0f,
+ AnimationCurve throwHeightCurve = null)
+ {
+ _minThrowDistance = minThrowDistance;
+ _maxThrowDistance = maxThrowDistance;
+ _throwDuration = throwDuration;
+ _throwArcHeight = throwArcHeight;
+ _targetHeightOffset = targetHeightOffset;
+ _throwHeightCurve = throwHeightCurve ?? AnimationCurve.EaseInOut(0f, 0f, 1f, 1f);
+ }
+
+ public void Play(ThrowAnimationRequest request)
+ {
+ if (request.Lure == null)
+ {
+ return;
+ }
+
+ Stop(snapToTarget: false);
+
+ _castingLure = request.Lure;
+ _chargedProgress = Mathf.Clamp01(request.ChargedProgress);
+ _castElapsedTime = 0f;
+
+ var lureBody = request.Lure.RBody;
+ _castStartPos = request.StartPosition;
+
+ Vector3 forward = request.Forward;
+ forward.y = 0f;
+ if (forward.sqrMagnitude < 0.001f)
+ {
+ forward = Vector3.forward;
+ }
+
+ float distance = Mathf.Lerp(_minThrowDistance, _maxThrowDistance, _chargedProgress);
+ _castTargetPos = _castStartPos + forward.normalized * distance;
+ _castTargetPos.y = _castStartPos.y + _targetHeightOffset;
+
+ CacheTrajectoryPoints();
+
+ lureBody.isKinematic = true;
+ lureBody.useGravity = false;
+ lureBody.linearVelocity = Vector3.zero;
+ lureBody.angularVelocity = Vector3.zero;
+ lureBody.position = _castStartPos;
+ }
+
+ public void Tick(float deltaTime)
+ {
+ DrawLastTrajectory();
+ UpdateCastAnimation(deltaTime);
+ }
+
+ public void Stop(bool snapToTarget)
+ {
+ if (_castingLure == null)
+ {
+ return;
+ }
+
+ var lureBody = _castingLure.RBody;
+ if (snapToTarget)
+ {
+ _castingLure.transform.position = _castTargetPos;
+ lureBody.position = _castTargetPos;
+ }
+
+ lureBody.linearVelocity = Vector3.zero;
+ lureBody.angularVelocity = Vector3.zero;
+ lureBody.useGravity = true;
+ lureBody.isKinematic = false;
+
+ _castingLure = null;
+ }
+
+ private void UpdateCastAnimation(float deltaTime)
+ {
+ if (_castingLure == null)
+ {
+ return;
+ }
+
+ float duration = Mathf.Max(_throwDuration, 0.01f);
+ _castElapsedTime += deltaTime;
+ float progress = Mathf.Clamp01(_castElapsedTime / duration);
+
+ _castingLure.transform.position = EvaluateTrajectoryPosition(progress);
+
+ if (progress >= 1f)
+ {
+ Stop(snapToTarget: true);
+ }
+ }
+
+ private void CacheTrajectoryPoints()
+ {
+ for (int i = 0; i <= TrajectorySampleCount; i++)
+ {
+ float progress = i / (float)TrajectorySampleCount;
+ _lastTrajectoryPoints[i] = EvaluateTrajectoryPosition(progress);
+ }
+
+ _hasLastTrajectory = true;
+ }
+
+ private Vector3 EvaluateTrajectoryPosition(float progress)
+ {
+ Vector3 position = Vector3.Lerp(_castStartPos, _castTargetPos, progress);
+ float arc = _throwHeightCurve.Evaluate(progress) * _throwArcHeight * _chargedProgress;
+ position.y += arc;
+ return position;
+ }
+
+ private void DrawLastTrajectory()
+ {
+ if (!_hasLastTrajectory)
+ {
+ return;
+ }
+
+ for (int i = 1; i <= TrajectorySampleCount; i++)
+ {
+ Debug.DrawLine(_lastTrajectoryPoints[i - 1], _lastTrajectoryPoints[i], Color.yellow);
+ }
+
+ Debug.DrawRay(_lastTrajectoryPoints[TrajectorySampleCount], Vector3.up * 0.3f, Color.cyan);
+ }
+ }
+}
\ No newline at end of file
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/ParabolaPlayerThrowAnimation.cs.meta b/Assets/Scripts/Fishing/New/View/Player/States/ParabolaPlayerThrowAnimation.cs.meta
new file mode 100644
index 000000000..d63383e49
--- /dev/null
+++ b/Assets/Scripts/Fishing/New/View/Player/States/ParabolaPlayerThrowAnimation.cs.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: 86121f3f07035144fadd467716b4b3a9
\ No newline at end of file
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs b/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs
index 2682bc49e..561ea6de8 100644
--- a/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs
+++ b/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs
@@ -1,4 +1,4 @@
-using NBC;
+using NBC;
using UnityEngine;
namespace NBF
@@ -6,10 +6,10 @@ namespace NBF
public class PlayerStageViewThrow : PlayerStageViewBase
{
private bool _nextState = false;
- public float ChargedProgress;
+ private bool _throwAnimEnded = false;
+ private IPlayerThrowAnimation _throwAnimation;
- [Header("抛竿参数")]
- [SerializeField] private float throwUpAngle = 0.7f; // 向上抛出的角度系数,越大抛得越高
+ public float ChargedProgress;
protected override void OnEnter()
{
@@ -24,53 +24,86 @@ namespace NBF
Debug.Log($"PlayerThrow ChargedProgress={ChargedProgress}");
_nextState = false;
- // Stage = Phase.Waiting;
-
- // _owner.Gears.Reel?.Unlock();
+ _throwAnimEnded = false;
+ _throwAnimation = null;
}
protected override void OnUpdate()
{
CheckStateTimeout(10);
+ _throwAnimation?.Tick(Time.deltaTime);
+
+ if (_throwAnimEnded && (_throwAnimation == null || !_throwAnimation.IsPlaying))
+ {
+ _nextState = true;
+ }
+
if (_nextState)
{
- // return (uint)PlayerState.Fishing;
_nextState = false;
Player.ChangeState(PlayerState.Fishing);
}
}
+ protected override void OnExit()
+ {
+ _throwAnimation?.Stop(snapToTarget: false);
+ _throwAnimation = null;
+ }
#region 动画回调
- ///
- /// 抛竿动画事件
- ///
public void OnRodThrowStart()
{
Debug.LogError("OnRodThrowStart");
UnTakeLine();
PlayerView.Unity.ModelAsset.PlayerAnimator.PrepareThrow = false;
PlayerView.Unity.ModelAsset.PlayerAnimator.StartThrow = false;
+
var rod = GetRod();
- if (rod != null && rod.Line != null && rod.Line.Lure != null)
+ if (rod == null || rod.Line == null || rod.Line.Lure == null)
{
- // 使用 ChargedProgress 作为力度系数 (0-1)
- float throwForce = 20f + ChargedProgress * 90f;
-
- // 水平向前 + 向上抛出,形成抛物线轨迹
- Vector3 throwDirection = PlayerView.Unity.transform.forward;// + Vector3.up * throwUpAngle;
-
- rod.Line.Lure.RBody.AddForce(throwDirection.normalized * throwForce, ForceMode.VelocityChange);
+ return;
}
+
+ _throwAnimation = CreateThrowAnimation(rod);
+ _throwAnimation?.Play(new ThrowAnimationRequest
+ {
+ Lure = rod.Line.Lure,
+ StartPosition = rod.Line.Lure.RBody.position,
+ Forward = PlayerView.Unity.transform.forward,
+ ChargedProgress = ChargedProgress
+ });
}
public void OnRodThrownEnd()
{
Debug.LogError("OnRodThrownEnd");
- _nextState = true;
+ _throwAnimEnded = true;
+ if (_throwAnimation == null || !_throwAnimation.IsPlaying)
+ {
+ _nextState = true;
+ }
}
#endregion
+
+ private IPlayerThrowAnimation CreateThrowAnimation(FRod rod)
+ {
+ if (rod == null || rod.Line == null)
+ {
+ return null;
+ }
+
+ switch (rod.Line.LineType)
+ {
+ case LineType.Spinning:
+ case LineType.SpinningFloat:
+ case LineType.Hand:
+ case LineType.HandDouble:
+ default:
+ return new ParabolaPlayerThrowAnimation();
+ }
+ }
}
-}
\ No newline at end of file
+}
diff --git a/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs.meta b/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs.meta
index cbe934038..c1aa603b0 100644
--- a/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs.meta
+++ b/Assets/Scripts/Fishing/New/View/Player/States/PlayerStageViewThrow.cs.meta
@@ -1,3 +1,2 @@
fileFormatVersion: 2
-guid: 240bbc6c969a4d2e9759ac1df5e6ccf2
-timeCreated: 1773064512
\ No newline at end of file
+guid: 240bbc6c969a4d2e9759ac1df5e6ccf2
\ No newline at end of file
diff --git a/Assets/Scripts/UI/Binders/CommonBinder.cs b/Assets/Scripts/UI/Binders/CommonBinder.cs
index 05f036599..bf09c8702 100644
--- a/Assets/Scripts/UI/Binders/CommonBinder.cs
+++ b/Assets/Scripts/UI/Binders/CommonBinder.cs
@@ -10,6 +10,7 @@ namespace NBF
public static void BindAll()
{
UIObjectFactory.SetPackageItemExtension(SelectPages.URL, typeof(SelectPages));
+ UIObjectFactory.SetPackageItemExtension(UIBlurBackground.URL, typeof(UIBlurBackground));
UIObjectFactory.SetPackageItemExtension(BottomMenu.URL, typeof(BottomMenu));
UIObjectFactory.SetPackageItemExtension(CommonInput.URL, typeof(CommonInput));
UIObjectFactory.SetPackageItemExtension(CommonMenuRight.URL, typeof(CommonMenuRight));
diff --git a/Assets/Scripts/UI/Login/LoginPanel.cs b/Assets/Scripts/UI/Login/LoginPanel.cs
index de8436000..03125a7ac 100644
--- a/Assets/Scripts/UI/Login/LoginPanel.cs
+++ b/Assets/Scripts/UI/Login/LoginPanel.cs
@@ -32,9 +32,9 @@ namespace NBF
{
await LoginHelper.Login(InputAccount.text);
- // await Fishing.Instance.Go(RoleModel.Instance.Info.MapId);
+ await Fishing.Instance.Go(RoleModel.Instance.Info.MapId);
- TestPanel.Show();
+ // TestPanel.Show();
// ChatTestPanel.Show();
diff --git a/Assets/Scripts/UI/UIBlurBackground.Designer.cs b/Assets/Scripts/UI/UIBlurBackground.Designer.cs
index daf4673a1..f097289ab 100644
--- a/Assets/Scripts/UI/UIBlurBackground.Designer.cs
+++ b/Assets/Scripts/UI/UIBlurBackground.Designer.cs
@@ -11,13 +11,13 @@ namespace NBF
{
public const string URL = "ui://6hgkvlau8hy8la";
- public GImage back;
+ public GImage Img;
public override void ConstructFromXML(XML xml)
{
base.ConstructFromXML(xml);
- back = (GImage)GetChild("back");
+ Img = (GImage)GetChild("Img");
OnInited();
UILanguage.TrySetComponentLanguage(this);
}
diff --git a/FGUIProject/assets/Common/Com/Back/UIBlurBackground.xml b/FGUIProject/assets/Common/Com/Back/UIBlurBackground.xml
index ff4e4c7c5..4339fc392 100644
--- a/FGUIProject/assets/Common/Com/Back/UIBlurBackground.xml
+++ b/FGUIProject/assets/Common/Com/Back/UIBlurBackground.xml
@@ -1,7 +1,7 @@
-
+
\ No newline at end of file
diff --git a/FGUIProject/assets/Common/Com/Menu/CommonSubMenu.xml b/FGUIProject/assets/Common/Com/Menu/CommonSubMenu.xml
index c6398fa13..0739c75a1 100644
--- a/FGUIProject/assets/Common/Com/Menu/CommonSubMenu.xml
+++ b/FGUIProject/assets/Common/Com/Menu/CommonSubMenu.xml
@@ -1,7 +1,7 @@
-
+
diff --git a/FGUIProject/assets/Common/Com/Menu/MainMenu.xml b/FGUIProject/assets/Common/Com/Menu/MainMenu.xml
index 19daca7d4..9050ccce3 100644
--- a/FGUIProject/assets/Common/Com/Menu/MainMenu.xml
+++ b/FGUIProject/assets/Common/Com/Menu/MainMenu.xml
@@ -11,7 +11,7 @@
-
+
diff --git a/FGUIProject/assets/Common/ComNew/BtnMainMenu.xml b/FGUIProject/assets/Common/ComNew/BtnMainMenu.xml
index 9d229d683..816953b87 100644
--- a/FGUIProject/assets/Common/ComNew/BtnMainMenu.xml
+++ b/FGUIProject/assets/Common/ComNew/BtnMainMenu.xml
@@ -6,7 +6,11 @@
-
+
+
+
+
+
diff --git a/FGUIProject/assets/Common/ImagesNew/花纹/pattern128_47.png b/FGUIProject/assets/Common/ImagesNew/花纹/pattern128_47.png
new file mode 100644
index 000000000..945474d33
Binary files /dev/null and b/FGUIProject/assets/Common/ImagesNew/花纹/pattern128_47.png differ
diff --git a/FGUIProject/assets/Common/package.xml b/FGUIProject/assets/Common/package.xml
index c36b55e6b..dbb6a1c23 100644
--- a/FGUIProject/assets/Common/package.xml
+++ b/FGUIProject/assets/Common/package.xml
@@ -482,6 +482,7 @@
+
\ No newline at end of file