From 133017169d362f0df94776117093f1acb6a62caa Mon Sep 17 00:00:00 2001 From: kimura Date: Wed, 8 Sep 2021 14:53:18 +0900 Subject: [PATCH] =?UTF-8?q?=E8=B3=BC=E5=85=A5=E6=99=82=E3=81=AE=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E6=8C=87=E5=AE=9A=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scenes/marketing/Prefabs/Customer.prefab | 4 +- .../marketing/Prefabs/OrderPositions.prefab | 125 ++++++++++++++++++ .../Prefabs/OrderPositions.prefab.meta | 7 + .../marketing/Scripts/CustomerController.cs | 14 +- .../MyGame/Scenes/marketing/Scripts/Market.cs | 18 ++- .../MyGame/Scenes/marketing/marketing.unity | 84 +++++++++++- 6 files changed, 240 insertions(+), 12 deletions(-) create mode 100644 popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab create mode 100644 popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab.meta diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/Customer.prefab b/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/Customer.prefab index 909143db..36f23b74 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/Customer.prefab +++ b/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/Customer.prefab @@ -71,7 +71,9 @@ MonoBehaviour: walkSideLeavePos: -1 stopPosision: 0 stopPositionRange: 3 - orderStayPositions: [] + orderPositions: + - {fileID: 0} + waitPositions: [] orderPosision: 0.5 orderPositionRange: 2 waitOrderPosision: -1.5 diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab b/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab new file mode 100644 index 00000000..2c8e84ad --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab @@ -0,0 +1,125 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1069859090919850344 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6447040043672924312} + m_Layer: 0 + m_Name: OrderPositions + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6447040043672924312 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1069859090919850344} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1635437916183945056} + - {fileID: 2432617433346117037} + - {fileID: 6983791351462881646} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2027285844943432890 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2432617433346117037} + m_Layer: 0 + m_Name: Center + m_TagString: Untagged + m_Icon: {fileID: 7866945982896999795, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2432617433346117037 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2027285844943432890} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6447040043672924312} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5460024165517926642 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6983791351462881646} + m_Layer: 0 + m_Name: Right + m_TagString: Untagged + m_Icon: {fileID: 7866945982896999795, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6983791351462881646 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5460024165517926642} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.66, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6447040043672924312} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5656405449394017583 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1635437916183945056} + m_Layer: 0 + m_Name: Left + m_TagString: Untagged + m_Icon: {fileID: 7866945982896999795, guid: 0000000000000000d000000000000000, type: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1635437916183945056 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5656405449394017583} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -1.66, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6447040043672924312} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab.meta b/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab.meta new file mode 100644 index 00000000..f422fd25 --- /dev/null +++ b/popcorn/Assets/MyGame/Scenes/marketing/Prefabs/OrderPositions.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 49f4b2509378048e7b7a5c6c0674be9f +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/CustomerController.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/CustomerController.cs index a8ce3c31..c357377e 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/CustomerController.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/CustomerController.cs @@ -57,7 +57,9 @@ public class CustomerController : MonoBehaviour [SerializeField] private float stopPosision = 0f; [SerializeField] private float stopPositionRange = 2f; // オーダー待ちは複数箇所用意 - [SerializeField] private List orderStayPositions = new List(); + private List orderPositions = new List(); + [SerializeField] private List waitPositions = new List(); + private int orderPositionIndex; // 購入ポジ [SerializeField] private float orderPosision = .5f; [SerializeField] private float orderPositionRange = 1f; @@ -114,8 +116,9 @@ public class CustomerController : MonoBehaviour }).AddTo(this); } - public void Setup() + public void Setup(List newOrderPositions) { + orderPositions = newOrderPositions; walkSideDirection = Mathf.Sign(Random.value - .5f); beginPos = Vector3.zero; beginPos.x = leftEndPosision * walkSideDirection; @@ -232,7 +235,7 @@ public class CustomerController : MonoBehaviour break; case CustomerMovingType.WalkBack: // 購入場所に行く - SetWayPoint(new Vector3(Random.value * orderPositionRange * walkSideDirection, orderPosision)); + SetWayPoint(orderPositions[orderPositionIndex].localPosition); speed = walkFrontBackSpeed; animator.SetTrigger(WalkBack); break; @@ -278,6 +281,11 @@ public class CustomerController : MonoBehaviour } } + public void SetOrderPosition(int index) + { + orderPositionIndex = index; + } + public void ShowWantFlavor(int flavor) { if (flavor == 2) diff --git a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs index 89bf5b03..63b7cae8 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs +++ b/popcorn/Assets/MyGame/Scenes/marketing/Scripts/Market.cs @@ -22,6 +22,7 @@ public class Market : MonoBehaviour [SerializeField] private MarketCartView cartView; [SerializeField] private BrotherBlueView blueView; [SerializeField] private GameObject customerPrefab; + [SerializeField] private GameObject orderPosisionObject; private readonly List allRecipe = RecipeData.GetAllRecipe(); private List displayFlavors; @@ -31,6 +32,8 @@ public class Market : MonoBehaviour private Subject requestSubject = new Subject(); private Subject orderSubject = new Subject(); + private int orderIndex; + // Start is called before the first frame update void Start() { @@ -96,17 +99,24 @@ public class Market : MonoBehaviour .Where(_ => shopState.Value == ShopState.Open) .BatchFrame() .Where(_ => waitCustomerList.Count > 0) - .SelectMany(_ => waitCustomerList.ToList().GetRange(0, Mathf.Min(3, waitCustomerList.Count))) + .SelectMany(_ => waitCustomerList.ToList().GetRange(0, Mathf.Min(maxOrder, waitCustomerList.Count))) .Subscribe(customer => { - Debug.Log($"aa order:{customerList.Count(x => x.State.Value == CustomerState.Order)} Request {Time.time} {customer.GetHashCode()}"); - if (customerList.Count(x => x.State.Value == CustomerState.Order) >= 3) + var count = customerList.Count(x => x.State.Value == CustomerState.Order); + Debug.Log($"aa order:{count} Request {Time.time} {customer.GetHashCode()}"); + if (count >= maxOrder) { shopState.Value = ShopState.Busy; return; } waitCustomerList.Remove(customer); // 購入へ + orderIndex++; + if (orderIndex >= maxOrder) + { + orderIndex = 0; + } + customer.SetOrderPosition(orderIndex); customer.ChangeCustomerState(CustomerState.Order); }).AddTo(this); @@ -335,7 +345,7 @@ public class Market : MonoBehaviour { var customer = Instantiate(customerPrefab); var customerController = customer.GetComponent(); - customerController.Setup(); + customerController.Setup(orderPosisionObject.transform.GetComponentsInChildren().ToList().Skip(1).ToList()); customerController.MoveEndObservable .SkipLatestValueOnSubscribe() .DistinctUntilChanged() diff --git a/popcorn/Assets/MyGame/Scenes/marketing/marketing.unity b/popcorn/Assets/MyGame/Scenes/marketing/marketing.unity index f90c2c82..0ca381d4 100644 --- a/popcorn/Assets/MyGame/Scenes/marketing/marketing.unity +++ b/popcorn/Assets/MyGame/Scenes/marketing/marketing.unity @@ -1330,6 +1330,12 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &384574881 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 1069859090919850344, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + m_PrefabInstance: {fileID: 5368382573410461785} + m_PrefabAsset: {fileID: 0} --- !u!224 &393700031 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 3664916832825273575, guid: caaa748dbeed576499e8cae74d33f689, @@ -2311,7 +2317,7 @@ PrefabInstance: - target: {fileID: 3664916832564167477, guid: caaa748dbeed576499e8cae74d33f689, type: 3} propertyPath: m_RootOrder - value: 3 + value: 4 objectReference: {fileID: 0} - target: {fileID: 3664916832564167477, guid: caaa748dbeed576499e8cae74d33f689, type: 3} @@ -2696,7 +2702,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &887630637 GameObject: @@ -3196,7 +3202,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1025201116 MonoBehaviour: @@ -3215,6 +3221,7 @@ MonoBehaviour: blueView: {fileID: 1506158581} customerPrefab: {fileID: 5409985849651702440, guid: 6fbb038c9aae840f2bea57bce30740f7, type: 3} + orderPosisionObject: {fileID: 384574881} --- !u!1 &1035509476 GameObject: m_ObjectHideFlags: 0 @@ -4815,7 +4822,7 @@ Transform: - {fileID: 1178501604} - {fileID: 1749782974} m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &1506158581 MonoBehaviour: @@ -11933,6 +11940,75 @@ Transform: type: 3} m_PrefabInstance: {fileID: 5221623863607992028} m_PrefabAsset: {fileID: 0} +--- !u!1001 &5368382573410461785 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1069859090919850344, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_Name + value: OrderPositions + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6447040043672924312, guid: 49f4b2509378048e7b7a5c6c0674be9f, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 49f4b2509378048e7b7a5c6c0674be9f, type: 3} --- !u!1001 &6824254246593737331 PrefabInstance: m_ObjectHideFlags: 0