Browse Source

1.合并ios时候修复的联网弓箭问题,还有ipad的注册时候的保存信息功能;2.修改轨迹动效

slambb 3 months ago
parent
commit
aca4188ebe

BIN
Assets/AddressableAssetsData/Android/addressables_content_state.bin


+ 26 - 0
Assets/AddressableAssetsData/link.xml

@@ -0,0 +1,26 @@
+<linker>
+  <assembly fullname="Unity.Addressables, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
+    <type fullname="UnityEngine.AddressableAssets.Addressables" preserve="all" />
+  </assembly>
+  <assembly fullname="Unity.Localization, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
+    <type fullname="UnityEngine.Localization.Locale" preserve="all" />
+    <type fullname="UnityEngine.Localization.Tables.SharedTableData" preserve="all" />
+    <type fullname="UnityEngine.Localization.Tables.StringTable" preserve="all" />
+    <type fullname="UnityEngine.Localization.LocaleIdentifier" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.Localization.Metadata.MetadataCollection" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.Localization.Tables.DistributedUIDGenerator" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.Localization.Tables.SharedTableData/SharedTableEntry" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.Localization.Metadata.SmartFormatTag" preserve="nothing" serialized="true" />
+    <type fullname="UnityEngine.Localization.Tables.TableEntryData" preserve="nothing" serialized="true" />
+  </assembly>
+  <assembly fullname="Unity.ResourceManager, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null" preserve="all">
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.AssetBundleProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.BundledAssetProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.InstanceProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.LegacyResourcesProvider" preserve="all" />
+    <type fullname="UnityEngine.ResourceManagement.ResourceProviders.SceneProvider" preserve="all" />
+  </assembly>
+  <assembly fullname="UnityEngine.CoreModule, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null">
+    <type fullname="UnityEngine.Object" preserve="all" />
+  </assembly>
+</linker>

+ 7 - 0
Assets/AddressableAssetsData/link.xml.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: ec74b621f31942e41aa8765c58abe78f
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 7 - 6
Assets/BowArrow/Scenes/Game.unity

@@ -2842,7 +2842,7 @@ GameObject:
   m_Icon: {fileID: 0}
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
-  m_IsActive: 1
+  m_IsActive: 0
 --- !u!4 &237700704
 Transform:
   m_ObjectHideFlags: 0
@@ -10022,15 +10022,15 @@ PrefabInstance:
       objectReference: {fileID: 0}
     - target: {fileID: 9007358786616518077, guid: 02d4cf543ee8d8e4093d8275bdc59b29, type: 3}
       propertyPath: m_LocalScale.x
-      value: 0.03
+      value: 0.003
       objectReference: {fileID: 0}
     - target: {fileID: 9007358786616518077, guid: 02d4cf543ee8d8e4093d8275bdc59b29, type: 3}
       propertyPath: m_LocalScale.y
-      value: 0.03
+      value: 0.003
       objectReference: {fileID: 0}
     - target: {fileID: 9007358786616518077, guid: 02d4cf543ee8d8e4093d8275bdc59b29, type: 3}
       propertyPath: m_LocalScale.z
-      value: 0.03
+      value: 0.003
       objectReference: {fileID: 0}
     - target: {fileID: 9007358786616518077, guid: 02d4cf543ee8d8e4093d8275bdc59b29, type: 3}
       propertyPath: m_ConstrainProportionsScale
@@ -15730,8 +15730,8 @@ MonoBehaviour:
     - serializedVersion: 3
       time: 1
       value: 1
-      inSlope: 0
-      outSlope: 0
+      inSlope: 2
+      outSlope: 2
       tangentMode: 0
       weightedMode: 0
       inWeight: 0.33333334
@@ -15741,6 +15741,7 @@ MonoBehaviour:
     m_RotationOrder: 4
   slowFactor: 0.4
   offsetFromArrow: {x: 0, y: 0.75, z: -2.5}
+  offsetFromArrowTemp: {x: 0, y: 0.75, z: -2.5}
   stopDistanceToTarget: 4
 --- !u!114 &1423259624
 MonoBehaviour:

+ 2 - 2
Assets/BowArrow/Scripts/Game/ArmBow.cs

@@ -42,10 +42,10 @@ public class ArmBow : MonoBehaviour
     /// </summary>
     [Tooltip("相机相对箭的偏移量(Y 是目标靶叠加值 目标Y + Y = 相机高度)")]
     [SerializeField]
-    public Vector3 offsetFromArrow = new Vector3(0, 0.75f, -3.5f);
+    public Vector3 offsetFromArrow = new Vector3(0, 0.75f, -2.5f);
     [Tooltip("没有射中目标靶的时候,给定一个跟随差值")]
     [SerializeField]
-    public Vector3 offsetFromArrowTemp = new Vector3(0, 0.75f, -6.5f);
+    public Vector3 offsetFromArrowTemp = new Vector3(0, 0.75f, -2.5f);
     [Tooltip("相机与目标之间的最小停止距离")]
     [SerializeField]
     public float stopDistanceToTarget = 4f; // 相机与目标之间的最小停止距离(XZ 平面)

+ 33 - 5
Assets/BowArrow/Scripts/Game/ArrowCamera.cs

@@ -307,6 +307,9 @@ class ArrowCameraTemplate_targetLock : ArrowCameraTemplate
 
     private float totalDist = 0f; // 初始相机与目标之间的水平总距离(用于计算进度)
 
+    private Vector3 lastArrowPos;  // 记录箭的上一次位置
+
+    private float arrowSpeed = 0;
 
     // 调节参数
     private const float extraSpeedMax = 100f; // 相机在箭方向上的额外冲击速度最大值(越大越“冲”)
@@ -320,11 +323,12 @@ class ArrowCameraTemplate_targetLock : ArrowCameraTemplate
         stopDistanceToTarget = ArmBow.ins.stopDistanceToTarget;
 
         this.target = target;
+    
         this.isFollowTarget = followTarget;
 
         Transform cameraT = arrowCamera.transform;
         Transform arrowT = arrowCamera.isArrowSync ? arrowCamera.arrowSync.transform : arrowCamera.arrow.transform;
-
+        this.lastArrowPos = arrowT.position;
 
         // 相机初始位置(箭位置 + 偏移,锁定 Y 高度)
         Vector3 offsetPos = arrowT.position + arrowT.TransformDirection(offsetFromArrow);
@@ -334,6 +338,9 @@ class ArrowCameraTemplate_targetLock : ArrowCameraTemplate
 
         // 记录初始总路程(XZ 平面,不考虑高度差)
         totalDist = GetXZDistance(offsetPos, target.position);
+
+        arrowSpeed = arrowCamera.arrow.mySpeed;
+        Debug.Log("当前弓箭速度:" + arrowSpeed);
     }
 
     public override void Update()
@@ -390,7 +397,7 @@ class ArrowCameraTemplate_targetLock : ArrowCameraTemplate
                 // 箭位置 + 偏移(相机保持与箭的相对位置,并锁定到目标的高度)
                 Vector3 offsetPos = arrowT.position + arrowT.TransformDirection(offsetFromArrow);
                 //offsetPos.y = target.position.y + offsetFromArrow.y;
-                offsetPos.x = target.position.x;
+               // offsetPos.x = target.position.x;
 
                 if (this.isFollowTarget)
                 {
@@ -408,10 +415,8 @@ class ArrowCameraTemplate_targetLock : ArrowCameraTemplate
                     cameraT.position = Vector3.Lerp(cameraT.position, targetPos, Time.deltaTime * speedFactor);
                 }
                 else {
-
                     // 最终目标位置 = 箭偏移位置 
                     //offsetPos.z = arrowT.position.z - 5;
-
                     // 箭的水平前进方向(忽略 y 分量)arrowT.forward.x
                     //Vector3 arrowDirXZ = new Vector3(0f, 0f, arrowT.forward.z).normalized;
 
@@ -422,7 +427,30 @@ class ArrowCameraTemplate_targetLock : ArrowCameraTemplate
                     //Vector3 targetPos = offsetPos + extraOffset;
                     // 相机向目标位置平滑插值(随曲线加速)
                     //float speedFactor = Mathf.Lerp(minLerpSpeed, maxLerpSpeed, easedT);
-                    cameraT.position = offsetPos;// Vector3.Lerp(cameraT.position, targetPos, Time.deltaTime * speedFactor);
+                    //cameraT.position = offsetPos;// Vector3.Lerp(cameraT.position, targetPos, Time.deltaTime * speedFactor);
+                    cameraT.SetParent(null);
+
+                    // 箭的前进方向(XZ 平面)Z 分量
+                    float arrowSpeedZ = arrowSpeed * arrowT.forward.z; // 箭速度 * 前方向 Z 分量
+
+                    // 相机当前 Z 位置参考箭的 Z
+                    float targetZ = cameraT.position.z + arrowSpeedZ * Time.deltaTime;
+
+                    // 保证相机不要超过箭本身(可选)
+                    targetZ = Mathf.Min(targetZ, arrowT.position.z);
+
+                    // 目标位置 = 相机 X/Y 偏移不变,Z 方向用 targetZ
+                    Vector3 targetPos = new Vector3(
+                        target.position.x,      // X 可以锁定到目标或保持 offsetPos.x
+                        offsetPos.y,            // Y 维持箭高度偏移
+                        targetZ
+                    );
+
+                    // 直接插值平滑到目标位置(也可以加缓动)
+                    float speedFactor = 5f; // 可调节平滑程度
+                    cameraT.position = Vector3.Lerp(cameraT.position, targetPos, Time.deltaTime * speedFactor);
+
+
                 }
                 // 最后强制 y = 靶子高度,不受lerp影响
                 Vector3 fixedPos = cameraT.position;

+ 1 - 1
Assets/BowArrow/Scripts/GameMode/GameModeTest.cs

@@ -9,7 +9,7 @@ public class GameModeTest : GameMode {
         if (SceneManager.GetActiveScene().name == "Game") {
             TargetBody targetBody = GameObject.Find("GameArea/TargetObject/TargetBody").GetComponent<TargetBody>();
             GameObject.FindObjectOfType<ArmBow>().validTargets.Add(targetBody);
-            targetBody.SetDistance(70);
+            targetBody.SetDistance(40);
         }
     }
     public override void HitTarget(float score) {