LiuQilin пре 8 година
родитељ
комит
4ebcaa5078

+ 1 - 1
Assets/Resource/Prefab/Object/DressRoom.prefab

@@ -63,7 +63,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1735349465193564}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -5.966135, y: -1.402306, z: -4}
+  m_LocalPosition: {x: -5.75, y: -3.92, z: -4}
   m_LocalScale: {x: 0.9634163, y: 0.9634163, z: 0.9634163}
   m_Children: []
   m_Father: {fileID: 4067243664179492}

+ 1 - 1
Assets/Resource/Prefab/Object/Garden.prefab

@@ -853,7 +853,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1504532721299822}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -0.5, y: 4.15, z: -1}
+  m_LocalPosition: {x: -0.36744797, y: 2.653619, z: -1}
   m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
   m_Children: []
   m_Father: {fileID: 4576759688754552}

+ 59 - 1
Assets/Resource/Prefab/Object/PlazaRoom.prefab

@@ -27,6 +27,21 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1027038479094960
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4053414627786464}
+  m_Layer: 0
+  m_Name: PlazaRoomCameraRightBorder
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1115051532171458
 GameObject:
   m_ObjectHideFlags: 0
@@ -74,6 +89,21 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!1 &1648693794060064
+GameObject:
+  m_ObjectHideFlags: 0
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  serializedVersion: 5
+  m_Component:
+  - component: {fileID: 4693788232285786}
+  m_Layer: 0
+  m_Name: PlazaRoomCameraLeftBorder
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
 --- !u!1 &1760093877699694
 GameObject:
   m_ObjectHideFlags: 0
@@ -121,6 +151,19 @@ GameObject:
   m_NavMeshLayer: 0
   m_StaticEditorFlags: 0
   m_IsActive: 1
+--- !u!4 &4053414627786464
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1027038479094960}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: 8, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4518027564363394}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!4 &4079838987492840
 Transform:
   m_ObjectHideFlags: 1
@@ -202,9 +245,24 @@ Transform:
   - {fileID: 4493473737233732}
   - {fileID: 4800422243721380}
   - {fileID: 4421693630246596}
+  - {fileID: 4693788232285786}
+  - {fileID: 4053414627786464}
   m_Father: {fileID: 0}
   m_RootOrder: 0
   m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!4 &4693788232285786
+Transform:
+  m_ObjectHideFlags: 1
+  m_PrefabParentObject: {fileID: 0}
+  m_PrefabInternal: {fileID: 100100000}
+  m_GameObject: {fileID: 1648693794060064}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -7.5, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 4518027564363394}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
 --- !u!4 &4800422243721380
 Transform:
   m_ObjectHideFlags: 1
@@ -212,7 +270,7 @@ Transform:
   m_PrefabInternal: {fileID: 100100000}
   m_GameObject: {fileID: 1306314131659996}
   m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
-  m_LocalPosition: {x: -14, y: 0, z: -5}
+  m_LocalPosition: {x: -13.867448, y: -2.1963809, z: -5.0143995}
   m_LocalScale: {x: 0.5, y: 0.5, z: 0.5}
   m_Children: []
   m_Father: {fileID: 4518027564363394}

+ 5 - 1
Assets/Script/Manage/ManaPlayer.cs

@@ -68,16 +68,19 @@ public class ManaPlayer : Regist
             if (PlayerPink.GetComponent<Player>() == null)
             {
                 PlayerPink.AddScript<Player>().BuildPink();
+                //PlayerPink.transform.position = ManaReso.Get("PlayerPos3").position;
             }
 
             if (PlayerBlond.GetComponent<Player>() == null)
             {
                 PlayerBlond.AddScript<Player>().BuildBlond();
+                //PlayerPink.transform.position = ManaReso.Get("PlayerPos2").position;
             }
 
             if (PlayerBrown.GetComponent<Player>() == null)
             {
                 PlayerBrown.AddScript<Player>().BuildBrown();
+                //PlayerPink.transform.position = ManaReso.Get("PlayerPos1").position;
             }
 
             PlayerPink.localScale = new Vector3(0.8f, 0.8f, 0.8f);
@@ -180,7 +183,7 @@ public class ManaPlayer : Regist
         }
 
 
-        Transform tra = ManaReso.Get("Player", Folder.Scene, false, transform, ManaReso.Get("PlayerPosTra").position, ObjType.Player);
+        Transform tra = ManaReso.Get("Player", Folder.Scene, false, transform, false, ObjType.Player);
         tra.SetParent(ManaReso.Get("GardenNormal"));
 
         Player = tra.GetComponent<Player>();
@@ -198,6 +201,7 @@ public class ManaPlayer : Regist
 
         Player.SetAllCollider(true);
         Player.UAC.armature.flipX = false;
+        Player.transform.position = ManaReso.Get("PlayerPosTra").position;
 
         tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
 

+ 17 - 2
Assets/Script/Object/Player.cs

@@ -445,6 +445,11 @@ public class Player : Regist , IPointerClickHandler
 {
     #region 变量
 
+    public static string IdleAnimationName = "newAnimation";
+    public static string JumpAnimationName = "newAnimation1";
+    public static string WalkAnimationName = "newAnimation2";
+    public static string RunAnimationName = "newAnimation3";
+
     public static bool InDressRoom;
     public static float JumpFrequency;
 
@@ -647,6 +652,8 @@ public class Player : Regist , IPointerClickHandler
         }
     }
 
+    public bool AnimationDirty;
+    public string CurrentAnimationName;
     public void PlayAnim(string animName)
     {
         if (AnimLock1)
@@ -654,6 +661,12 @@ public class Player : Regist , IPointerClickHandler
             return;
         }
 
+        if (GardenSmartFoxManager.GardenSmartFox.PlazaRoomManager.InPlazaRoom)
+        {
+            AnimationDirty = true;
+            CurrentAnimationName = animName;
+        }
+
         UAC.anim.Play(animName);
     }
 
@@ -955,8 +968,10 @@ public class Player : Regist , IPointerClickHandler
             children.Back(0).parent = null;
         }
 
-        ManaReso.Get("PlayerPosTra").position -= UAC.transform.FindChild("Pivot").position - transform.position;
-        transform.position += UAC.transform.FindChild("Pivot").position - transform.position;
+        Vector3 offset = UAC.transform.FindChild("Pivot").position - transform.position;
+        children[0].position += offset;
+        children[1].position += offset;
+        transform.position += offset;
 
         for (int i = 0; i < children.Count; i++)
         {

+ 52 - 6
Assets/Script/SFS/Manager/PlazaRoomManager.cs

@@ -88,6 +88,10 @@ public class PlazaRoomManager
 
     public void EnterPlazaRoom()
     {
+        CameraOriginPosition = Camera.main.transform.position;
+        CameraLeftBorder = ManaReso.Get("PlazaRoomCameraLeftBorder").position.x;
+        CameraRightBorder = ManaReso.Get("PlazaRoomCameraRightBorder").position.x;
+
         ManaReso.Get("U_BlackMask").TweenForCG();
 
         ManaReso.SetActive("C_Main", false);
@@ -106,6 +110,8 @@ public class PlazaRoomManager
                 EventType.BackwardFinish,
                 () =>
                 {
+                    Camera.main.transform.position = CameraOriginPosition;
+
                     ManaReso.SetActive("C_Main", true);
                     ManaReso.SetActive("Garden", true);
                     ManaReso.SetActive("PlazaRoom", false);
@@ -121,7 +127,6 @@ public class PlazaRoomManager
             );
     }
 
-
     public PlazaRoomManager(GardenSmartFox gardenSmartFox)
     {
         GardenSmartFox = gardenSmartFox;
@@ -150,9 +155,13 @@ public class PlazaRoomManager
         if (SelfInstance.DirectionDirty)
             SyncDirection();
 
+        if (SelfInstance.AnimationDirty)
+            SyncAnimation();
+
         KeepAliveThread();
-    }
 
+        CameraControllThread();
+    }
     public void SyncDirection()
     {
         List<UserVariable> userVariables = new List<UserVariable>();
@@ -160,7 +169,6 @@ public class PlazaRoomManager
         GardenSmartFox.SmartFox.Send(new SetUserVariablesRequest(userVariables));
         SelfInstance.DirectionDirty = false;
     }
-
     public void SyncTransform()
     {
         List<UserVariable> userVariables = new List<UserVariable>();
@@ -168,6 +176,13 @@ public class PlazaRoomManager
         GardenSmartFox.SmartFox.Send(new SetUserVariablesRequest(userVariables));
         SelfInstance.transform.hasChanged = false;
     }
+    public void SyncAnimation()
+    {
+        List<UserVariable> userVariables = new List<UserVariable>();
+        userVariables.Add(new SFSUserVariable("animation", $"{SelfInstance.CurrentAnimationName}"));
+        GardenSmartFox.SmartFox.Send(new SetUserVariablesRequest(userVariables));
+        SelfInstance.AnimationDirty = false;
+    }
 
     public bool CloseDirty;
     public void SyncClose()
@@ -209,6 +224,19 @@ public class PlazaRoomManager
         }
     }
 
+    public float CameraLeftBorder;
+    public float CameraRightBorder;
+    public Vector3 CameraOriginPosition;
+    public void CameraControllThread()
+    {
+        if (SelfInstance.transform.position.x <= CameraLeftBorder || SelfInstance.transform.position.x >= CameraRightBorder)
+        {
+            return;
+        }    
+
+        Camera.main.transform.SetX(SelfInstance.transform.position.x);
+    }
+
     public void ChangeUserClose(User user, List<string> dressData)
     {
         ManaPlayer.BuildPlayer(dressData, UserInstanceDictionary[user]);
@@ -225,6 +253,11 @@ public class PlazaRoomManager
         UserInstanceDictionary[user].transform.eulerAngles = eulerAngles;
     }
 
+    public void ChangeUserAnimation(User user, string animationName)
+    {
+        UserInstanceDictionary[user].PlayAnim(animationName);
+    }
+
 
     public void OnConectionLost(BaseEvent baseEvent)
     {
@@ -303,6 +336,10 @@ public class PlazaRoomManager
 
                     ChangeUserDirection(user, playerDirection);
                 }
+                else if (changeVars[i] == "animation")
+                {
+                    ChangeUserAnimation(user, user.GetVariable(changeVars[i]).Value as string);
+                }
             }
         }
     }
@@ -310,6 +347,7 @@ public class PlazaRoomManager
 
     public Player InstanciatePlayer(User user)
     {
+        string animationName = Player.IdleAnimationName;
         Vector3 position = ManaReso.Get("PlazaRoomDefaultPosition").position;
         Vector3 eulerAngles = new Vector3();
         PlayerDirection playerDirection = PlayerDirection.Left;
@@ -329,14 +367,19 @@ public class PlazaRoomManager
             playerDirection = (user.GetVariable("direction").Value as string).ToEnum<PlayerDirection>();
         }
 
+        if (user.ContainsVariable("animation"))
+        {
+            animationName = user.GetVariable("animation").Value as string;
+        }
+
         dressData = ManaData.GetDressData(user);
 
-        return InstanciatePlayer(position, eulerAngles, playerDirection, dressData);
+        return InstanciatePlayer(position, eulerAngles, playerDirection, animationName, dressData);
     }
 
-    public Player InstanciatePlayer(Vector3 position, Vector3 eulerAngles, PlayerDirection direction, List<string> dressData)
+    public Player InstanciatePlayer(Vector3 position, Vector3 eulerAngles, PlayerDirection direction, string animationName, List<string> dressData)
     {
-        Transform tra = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlazaRoom"), position, ObjType.Player);
+        Transform tra = ManaReso.Get("Player", Folder.Scene, false, ManaReso.Get("PlazaRoom"), false, ObjType.Player);
 
         Player player = tra.GetComponent<Player>();
 
@@ -351,6 +394,9 @@ public class PlazaRoomManager
 
         player.SetAllCollider(false);
         player.Flip(direction);
+        player.transform.position = position;
+
+        player.PlayAnim(animationName);
 
         tra.localScale = new Vector3(0.5f, 0.5f, 0.5f);
 

+ 4 - 4
Assets/Script/Tool/Auxiliary.cs

@@ -158,7 +158,7 @@ public class Auxiliary : Regist
 
         if (Input.GetKeyDown(KeyCode.X))
         {
-            ManaPlayer.Player.PlayAnim("newAnimation2");
+            //ManaPlayer.Player.PlayAnim("newAnimation2");
 
             //StartCoroutine(ManaServer.DownloadAllAsset(new List<string>() { "http://or5zgoeui.bkt.clouddn.com/game_icon.png", "https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3853411417,2245648913&fm=26&gp=0.jpg" }, ManaServer.DownloadAllTexture));
 
@@ -177,7 +177,7 @@ public class Auxiliary : Regist
 
         if (Input.GetKeyDown(KeyCode.C))
         {
-            ManaPlayer.Player.PlayAnim("newAnimation3");
+            //ManaPlayer.Player.PlayAnim("newAnimation3");
 
             //ManaReso.Get("C_Notify").TweenForCG();
 
@@ -195,7 +195,7 @@ public class Auxiliary : Regist
 
         if (Input.GetKeyDown(KeyCode.V))
         {
-            ManaPlayer.Player.Flip(PlayerDirection.Right);
+            //ManaPlayer.Player.Flip(PlayerDirection.Right);
 
             //ManaServer.MailReward mailReward = new ManaServer.MailReward("1", "pack", "4");
             //ManaServer.MailReward mailReward1 = new ManaServer.MailReward("1", "close", "2");
@@ -210,7 +210,7 @@ public class Auxiliary : Regist
 
         if (Input.GetKeyDown(KeyCode.B))
         {
-            ManaPlayer.Player.Flip(PlayerDirection.Left);
+            //ManaPlayer.Player.Flip(PlayerDirection.Left);
 
             //foreach (var VARIABLE in ManaPlayer.CloseUnitDic)
             //{

+ 1 - 3
ToDoList.txt

@@ -1,6 +1,4 @@
-摄像机控制
-
-退出房间时不需要再移动
+同步动画
 
 动画过渡