tigerchen 6 years ago
commit 924cefc62c
  1. 403
      Unity-19050-05-BallPool/Assets/Frozen/Frozen.unity
  2. 72
      Unity-19050-05-BallPool/Assets/Frozen/Script/CharacterBehaviour.cs
  3. 7
      Unity-19050-05-BallPool/Assets/Frozen/Script/EventSystemHandler.cs
  4. 0
      Unity-19050-05-BallPool/Assets/Frozen/Script/EventSystemHandler.cs.meta
  5. 39
      Unity-19050-05-BallPool/Assets/Frozen/Script/FrozenPointerEventFilter.cs
  6. 42
      Unity-19050-05-BallPool/Assets/Frozen/Script/FrozenScreenToWorldSpace.cs
  7. 8
      Unity-19050-05-BallPool/Assets/Frozen/Script/SceneController.cs
  8. 79
      Unity-19050-05-BallPool/Assets/Frozen/Script/TouchArea.cs
  9. 13
      Unity-19050-05-BallPool/Assets/Frozen/Script/TouchArea.cs.meta

@ -1075,7 +1075,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!4 &199010598
Transform:
m_ObjectHideFlags: 0
@ -3804,166 +3804,6 @@ MonoBehaviour:
PlayOnStart: 1
Looping: 1
AudioVolume: 1
--- !u!43 &956046139
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 'Space Ground Mesh: (8x5x3)'
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 24
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 16
localAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 0
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00
m_VertexData:
serializedVersion: 2
m_VertexCount: 16
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 12
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 24
format: 0
dimension: 2
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 512
_typelessdata: 000080c000000000000020c0000000000000803f00000000e4388e3e00000000000080c00000000000002040000000000000803f00000000e4388e3e0000203f0000804000000000000020c0000000000000803f000000008ee3383f00000000000080400000000000002040000000000000803f000000008ee3383f0000203f000080c000000000000020400000000000000000000080bfe4388e3e0000203f000080c000004040000020400000000000000000000080bfe4388e3e0000803f0000804000000000000020400000000000000000000080bf8ee3383f0000203f0000804000004040000020400000000000000000000080bf8ee3383f0000803f000080c000000000000020c00000803f0000000000000000000000000000203f000080c000004040000020c00000803f0000000000000000000000000000803f000080c000000000000020400000803f0000000000000000e4388e3e0000203f000080c000004040000020400000803f0000000000000000e4388e3e0000803f000080400000000000002040000080bf00000000000000008ee3383f0000203f000080400000404000002040000080bf00000000000000008ee3383f0000803f0000804000000000000020c0000080bf00000000000000000000803f0000203f0000804000004040000020c0000080bf00000000000000000000803f0000803f
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &1000268178
GameObject:
m_ObjectHideFlags: 0
@ -5750,7 +5590,7 @@ MeshFilter:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1379541361}
m_Mesh: {fileID: 956046139}
m_Mesh: {fileID: 1925169124}
--- !u!114 &1379541365
MonoBehaviour:
m_ObjectHideFlags: 0
@ -7344,7 +7184,7 @@ Canvas:
serializedVersion: 3
m_RenderMode: 1
m_Camera: {fileID: 520040868}
m_PlaneDistance: 0.5
m_PlaneDistance: 10
m_PixelPerfect: 0
m_ReceivesEvents: 1
m_OverrideSorting: 0
@ -8065,7 +7905,7 @@ PrefabInstance:
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: infos.List.Array.size
value: 2
value: 3
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
@ -8092,6 +7932,11 @@ PrefabInstance:
propertyPath: controls.List.Array.size
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].Event.m_PersistentCalls.m_Calls.Array.size
value: 0
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[0].name
@ -8250,13 +8095,78 @@ PrefabInstance:
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: controls.List.Array.data[0].member
value: standbyTime
value: format
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: controls.List.Array.data[0].prettyName
value: Format
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].name
value: Use Single Wall
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Target
value:
objectReference: {fileID: 2084936103}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].Event.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
value: GoStandby
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
value: 1
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].Event.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
value: UnityEngine.Object, UnityEngine
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[4].Event.m_PersistentCalls.m_Calls.Array.data[0].m_CallState
value: 2
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: actions.List.Array.data[5].name
value: Use Single Wall
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: controls.List.Array.data[1].instance
value:
objectReference: {fileID: 2084936103}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: controls.List.Array.data[1].member
value: standbyTime
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: controls.List.Array.data[1].prettyName
value: Standby Time
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: infos.List.Array.data[2].instance
value:
objectReference: {fileID: 2084936103}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: infos.List.Array.data[2].member
value: format
objectReference: {fileID: 0}
- target: {fileID: 5748129664144205097, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: infos.List.Array.data[2].prettyName
value: Format
objectReference: {fileID: 0}
- target: {fileID: 224343345892171400, guid: 7aba709da85d1c2439af18a2c2e1548c,
type: 3}
propertyPath: m_AnchorMax.x
@ -8738,6 +8648,166 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 13
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!43 &1925169124
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: 'Space Ground Mesh: (8x5x3)'
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 24
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 16
localAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 0
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200010003000200040005000600050007000600080009000a0009000b000a000c000d000e000d000f000e00
m_VertexData:
serializedVersion: 2
m_VertexCount: 16
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 12
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 24
format: 0
dimension: 2
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 512
_typelessdata: 000080c000000000000020c0000000000000803f00000000e4388e3e00000000000080c00000000000002040000000000000803f00000000e4388e3e0000203f0000804000000000000020c0000000000000803f000000008ee3383f00000000000080400000000000002040000000000000803f000000008ee3383f0000203f000080c000000000000020400000000000000000000080bfe4388e3e0000203f000080c000004040000020400000000000000000000080bfe4388e3e0000803f0000804000000000000020400000000000000000000080bf8ee3383f0000203f0000804000004040000020400000000000000000000080bf8ee3383f0000803f000080c000000000000020c00000803f0000000000000000000000000000203f000080c000004040000020c00000803f0000000000000000000000000000803f000080c000000000000020400000803f0000000000000000e4388e3e0000203f000080c000004040000020400000803f0000000000000000e4388e3e0000803f000080400000000000002040000080bf00000000000000008ee3383f0000203f000080400000404000002040000080bf00000000000000008ee3383f0000803f0000804000000000000020c0000080bf00000000000000000000803f0000203f0000804000004040000020c0000080bf00000000000000000000803f0000803f
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 1.5, z: 0}
m_Extent: {x: 4, y: 1.5, z: 2.5}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &1925824385
GameObject:
m_ObjectHideFlags: 0
@ -9204,7 +9274,7 @@ GameObject:
- component: {fileID: 2084936104}
- component: {fileID: 2084936103}
m_Layer: 0
m_Name: Frozen
m_Name: Frozen Controller
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -9224,6 +9294,7 @@ MonoBehaviour:
m_EditorClassIdentifier:
persistance: 1
state: 2
format: 0
standbyTime: 10
onSceneStandby:
m_PersistentCalls:

@ -31,10 +31,6 @@ namespace UltraCombos.Frozen
float roaming = 0.0f;
float roaming_seed = 0.0f;
[SerializeField]
private RectTransform fakeButton;
// private CanvasGroup canvas_group;
[Header("DShow Player")]
[SerializeField]
bool isStandbyLoop = true;
@ -83,7 +79,6 @@ namespace UltraCombos.Frozen
//mat = new Material(Shader.Find("Unlit/ColorTransparent"));
//m_meshRender.material = mat;
origin_height = transform.position.y;
InitialiseDSPlayer();
@ -107,34 +102,12 @@ namespace UltraCombos.Frozen
void InitialTouchButton()
{
if (fakeButton != null)
return;
// GameObject obj = new GameObject(gameObject.name);
// obj.transform.parent = GameObject.Find("Final Canvas").transform.Find("RawImage");
// fakeButton = obj.AddComponent<RectTransform>();
// fakeButton.anchorMin = new Vector2(0, 0);
// fakeButton.anchorMax = new Vector2(0, 0);
// fakeButton.pivot = new Vector2(0.5f, 0.5f);
// var standby_scale = renderers[(int)Status.STANDBY].transform.localScale;
// fakeButton.sizeDelta = new Vector2(standby_scale.x, standby_scale.y) * FrozenScreenToWorldSpace.Instance.finalPixelsByMeter;
// fakeButton.sizeDelta = Vector2.Min(fakeButton.sizeDelta, Vector2.one * 100.0f);
// fakeButton.sizeDelta = Vector2.Max(fakeButton.sizeDelta, Vector2.one * 60.0f);
// fakeButton.anchoredPosition3D = new Vector3(0, 0, 0);
// fakeButton.localScale = Vector3.one;
// fakeButton.gameObject.AddComponent<RawImage>();
// fakeButton.GetComponent<RawImage>().color = new Color(1, 1, 1, 0);
// TouchArea touch_area = fakeButton.gameObject.AddComponent<TouchArea>();
// touch_area.PointerDown.AddListener((data) => { Trigger(data); });
// touch_area.PointerDrag.AddListener((data) => { Trigger(data); });
TestTouch test_touch = GetComponentInChildren<TestTouch>();
EventSystemHandler test_touch = GetComponentInChildren<EventSystemHandler>();
if (test_touch != null)
{
test_touch.onPointerDown.AddListener((data) => { Trigger(data); });
test_touch.onPointerDrag.AddListener((data) => { Trigger(data); });
test_touch.onPointerDown.AddListener((data) => Trigger());
test_touch.onPointerDrag.AddListener((data) => Trigger());
}
// canvas_group = fakeButton.gameObject.AddComponent<CanvasGroup>();
// canvas_group.blocksRaycasts = true;
// canvas_group.interactable = true;
}
private void Start()
@ -157,22 +130,7 @@ namespace UltraCombos.Frozen
//StartCoroutine(RandomPosNoTriggerOther());
//color = new Color(1, 1, 1, 0);
//StartCoroutine(Sleep());
if (fakeButton != null)
{
fakeButton.gameObject.SetActive(true);
// canvas_group.interactable = true;
// canvas_group.blocksRaycasts = true;
}
}
private void OnDisable()
{
if (fakeButton != null)
{
fakeButton.gameObject.SetActive(false);
// canvas_group.interactable = false;
// canvas_group.blocksRaycasts = false;
}
EnableTouch();
}
public bool Active
@ -199,6 +157,8 @@ namespace UltraCombos.Frozen
is_alive = false;
}
void EnableTouch() { }
void DisableTouch() { }
private void ResetFlow()
{
@ -251,8 +211,7 @@ namespace UltraCombos.Frozen
if (mode) info = "STANDBY";
// standby
{
// canvas_group.interactable = true;
// canvas_group.blocksRaycasts = true;
EnableTouch();
status = Status.STANDBY;
var player = StatePlayer;
player.Loop = isStandbyLoop;
@ -279,8 +238,7 @@ namespace UltraCombos.Frozen
if (mode) info = "TRIGGER";
// trigger
{
// canvas_group.interactable = false;
// canvas_group.blocksRaycasts = false;
DisableTouch();
onTrigger.Invoke();
status = Status.TRIGGER;
var player = StatePlayer;
@ -369,7 +327,6 @@ namespace UltraCombos.Frozen
{
UpdateRoamingPosition();
UpdateWallRoiFromPosition();
UpdateButtonPos();
}
}
break;
@ -469,7 +426,6 @@ namespace UltraCombos.Frozen
wallRoi.y = origin_height / FrozenScreenToWorldSpace.Instance.height;
UpdatePos();
UpdateButtonPos();
}
void UpdatePos()
@ -490,15 +446,6 @@ namespace UltraCombos.Frozen
//SetButtonPos();
}
void UpdateButtonPos()
{
//Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, wallRoi);
var roi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, renderers[(int)Status.STANDBY].transform.position);
Vector2 newScreenPos = FrozenScreenToWorldSpace.Instance.GetFinalScreenPos(area, roi);
// newScreenPos.x = newScreenPos.x / 1830 * 1260;
// fakeButton.anchoredPosition = newScreenPos;
}
void SetSpecificPos()
{
int pos_index = Random.Range(0, specificPositions.Count);
@ -507,7 +454,6 @@ namespace UltraCombos.Frozen
transform.position = dummy.transform.position;
transform.rotation = dummy.transform.rotation;
UpdateWallRoiFromPosition();
UpdateButtonPos();
}
void UpdateWallRoiFromPosition()
@ -515,7 +461,7 @@ namespace UltraCombos.Frozen
wallRoi = FrozenScreenToWorldSpace.Instance.GetWallRoiFromPosition(area, transform.position);
}
private void Trigger(PointerEventData data)
private void Trigger()
{
if (status != Status.STANDBY)
return;

@ -4,19 +4,18 @@ using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.EventSystems;
using Random = UnityEngine.Random;
public class TestTouch : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler, IPointerExitHandler
public class EventSystemHandler : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler, IPointerExitHandler
{
public bool MouseOnly = false;
// public bool MouseOnly = false;
[System.Serializable]
public class PointerEvent : UnityEvent<PointerEventData> { };
public PointerEvent onPointerDown = new PointerEvent();
public PointerEvent onPointerUp = new PointerEvent();
public PointerEvent onPointerDrag = new PointerEvent();
public PointerEvent onPointerExit = new PointerEvent();
public void OnPointerDown(PointerEventData eventData)
{
LogPointerEvent(eventData);

@ -21,7 +21,6 @@ namespace UltraCombos
Rect RightWall;
// Rect Floor;
private void Start()
{
float dim = space.x + space.z * 2.0f;
@ -58,12 +57,12 @@ namespace UltraCombos
src.Add(new Vector2(space.z, dim - space.z));
src.Add(new Vector2(space.z, dim - (space.z + space.x)));
dst.Clear();
dst.Add(new Vector2(0, dim - space.z));
dst.Add(new Vector2(0, dim - (space.z + space.x)));
dst.Add(new Vector2(space.z, dim - space.z));
dst.Add(new Vector2(space.z, dim - (space.z + space.x)));
LeftWall = new Rect(0, dim - (space.z + space.x), space.z, space.x);
dst.Clear();
dst.Add(new Vector2(LeftWall.xMin, LeftWall.yMax));
dst.Add(new Vector2(LeftWall.xMin, LeftWall.yMin));
dst.Add(new Vector2(LeftWall.xMax, LeftWall.yMax));
dst.Add(new Vector2(LeftWall.xMax, LeftWall.yMin));
var matrix = Matrix4x4.identity;
FindHomography(dst.ToArray(), src.ToArray(), ref matrix);
@ -78,11 +77,12 @@ namespace UltraCombos
src.Add(new Vector2(space.z + space.x, dim - space.z));
src.Add(new Vector2(space.z + space.x, dim - (space.z + space.x)));
RightWall = new Rect(space.z + space.x, dim - (space.z + space.x), space.z, space.x);
dst.Clear();
dst.Add(new Vector2(dim, dim - space.z));
dst.Add(new Vector2(dim, dim - (space.z + space.x)));
dst.Add(new Vector2(space.z + space.x, dim - space.z));
dst.Add(new Vector2(space.z + space.x, dim - (space.z + space.x)));
dst.Add(new Vector2(RightWall.xMax, RightWall.yMax));
dst.Add(new Vector2(RightWall.xMax, RightWall.yMin));
dst.Add(new Vector2(RightWall.xMin, RightWall.yMax));
dst.Add(new Vector2(RightWall.xMin, RightWall.yMin));
var matrix = Matrix4x4.identity;
FindHomography(dst.ToArray(), src.ToArray(), ref matrix);
@ -95,7 +95,7 @@ namespace UltraCombos
Vector2 position = eventData.position;
position = Rect.PointToNormalized(roi, position);
position = Rect.NormalizedToPoint(roiDst, position);
Debug.Log(position);
// Debug.Log(position);
if (homos.Count == 0)
{
eventData.position = Vector2.negativeInfinity;
@ -105,21 +105,30 @@ namespace UltraCombos
if (TopWall.Contains(position))
{
position = homos[0].MultiplyPoint(position);
Debug.Log("inside top wall");
// Debug.Log("inside top wall");
}
else if (LeftWall.Contains(position))
{
position = homos[1].MultiplyPoint(position);
// Debug.Log("inside left wall");
}
else if (RightWall.Contains(position))
{
position = homos[2].MultiplyPoint(position);
// Debug.Log("inside right wall");
}
else
{
position = Vector2.negativeInfinity;
Debug.Log("outside");
// Debug.Log("outside");
}
Debug.Log(position);
// Debug.Log(position);
eventData.position = position;
}
private void FindHomography(Vector2[] src, Vector2[] dest, ref Matrix4x4 homography)
{

@ -73,27 +73,27 @@ public class FrozenScreenToWorldSpace : MonoBehaviour
};
}
public Vector2 GetFinalScreenPos(Area area, Vector2 wallROI)
{
if (!RenderTextureROIList.ContainsKey(area))
return Vector2.zero;
Rect textureROI = RenderTextureROIList[area];
Vector2 currenPos = Vector2.zero;
switch (area)
{
case Area.LeftWall:
currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(1 - wallROI.y, 1 - wallROI.x));
break;
case Area.RightWall:
currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(wallROI.y, 1 - wallROI.x));
break;
case Area.TopWall:
currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(wallROI.x, 1 - wallROI.y));
break;
}
currenPos = new Vector2(currenPos.x * Screen.width, (1 - currenPos.y) * Screen.height);
return currenPos;
}
// public Vector2 GetFinalScreenPos(Area area, Vector2 wallROI)
// {
// if (!RenderTextureROIList.ContainsKey(area))
// return Vector2.zero;
// Rect textureROI = RenderTextureROIList[area];
// Vector2 currenPos = Vector2.zero;
// switch (area)
// {
// case Area.LeftWall:
// currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(1 - wallROI.y, 1 - wallROI.x));
// break;
// case Area.RightWall:
// currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(wallROI.y, 1 - wallROI.x));
// break;
// case Area.TopWall:
// currenPos = Rect.NormalizedToPoint(textureROI, new Vector2(wallROI.x, 1 - wallROI.y));
// break;
// }
// currenPos = new Vector2(currenPos.x * Screen.width, (1 - currenPos.y) * Screen.height);
// return currenPos;
// }
public Vector2 GetWallRoiFromPosition(Area area, Vector3 position)
{

@ -15,9 +15,17 @@ namespace UltraCombos.Frozen
Night,
}
public enum Form
{
FullSpace,
SingleWall,
}
public class SceneController : Singleton<SceneController>
{
public State state = State.Standby;
public Form format = Form.FullSpace;
public float standbyTime = 10.0f;
public UnityEvent onSceneStandby = new UnityEvent();

@ -1,79 +0,0 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.Events;
using UnityEngine.UI;
public class TouchArea : MonoBehaviour, IPointerDownHandler, IDragHandler, IPointerExitHandler, IPointerUpHandler
{
[HideInInspector]
public Image img;
public bool MouseOnly = false;
[System.Serializable]
public class OnPointerDownEvent : UnityEvent<PointerEventData> { };
public OnPointerDownEvent PointerDown = new OnPointerDownEvent();
[System.Serializable]
public class OnPointerDragEvent : UnityEvent<PointerEventData> { };
public OnPointerDragEvent PointerDrag = new OnPointerDragEvent();
[System.Serializable]
public class OnPointerUpEvent : UnityEvent<PointerEventData> { };
public OnPointerUpEvent PointerUp = new OnPointerUpEvent();
[System.Serializable]
public class OnPointerExitEvent : UnityEvent<PointerEventData> { };
public OnPointerExitEvent PointerExit = new OnPointerExitEvent();
private void Awake()
{
img = GetComponent<Image>();
}
public void OnPointerDown(PointerEventData eventData)
{
if (PointerDown == null)
return;
if (skip_on_mouse_only(eventData))
return;
PointerDown.Invoke(eventData);
//Debug.Log("OnPointerDown");
}
public void OnDrag(PointerEventData eventData)
{
if (PointerDrag == null)
return;
if (skip_on_mouse_only(eventData))
return;
PointerDrag.Invoke(eventData);
//Debug.Log("OnDrag");
}
public void OnPointerUp(PointerEventData eventData)
{
if (PointerUp == null)
return;
if (skip_on_mouse_only(eventData))
return;
PointerUp.Invoke(eventData);
//Debug.Log("OnPointerUp");
}
public void OnPointerExit(PointerEventData eventData)
{
if (PointerExit == null)
return;
if (skip_on_mouse_only(eventData))
return;
PointerExit.Invoke(eventData);
//Debug.Log("OnPointerExit");
}
private bool skip_on_mouse_only(PointerEventData eventData)
{
return MouseOnly && eventData.pointerId != -1;
}
}

@ -1,13 +0,0 @@
fileFormatVersion: 2
guid: a7c5e8323feda4b4499c3089d5c22e11
timeCreated: 1524470056
licenseType: Free
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save