Merge remote-tracking branch 'origin/dev_cyp' into dev_nonearth

# Conflicts:
#	Assets/Resources/UI/language.json
This commit is contained in:
lishuo 2021-12-29 17:07:34 +08:00
commit eece0cffa5
401 changed files with 51471 additions and 4540 deletions

157
Assets/BannerController.cs Normal file
View File

@ -0,0 +1,157 @@
using Assets.Scripts;
using Assets.Scripts.Apis.Models;
using DG.Tweening;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
public class BannerController : MonoBehaviour
{
// Start is called before the first frame update
private List<CanvasGroup> itemList;
private List<Vector3> standardPositions;
private List<MapRouteAreaItem> list;
private int currentIndex = 1;
void Awake()
{
itemList = new List<CanvasGroup>
{
transform.Find("1").GetComponent<CanvasGroup>(),
transform.Find("2").GetComponent<CanvasGroup>(),
transform.Find("3").GetComponent<CanvasGroup>()
};
standardPositions = new List<Vector3>
{
transform.Find("1").localPosition,transform.Find("2").localPosition,transform.Find("3").localPosition
};
Debug.Log(standardPositions[0]);
Debug.Log(standardPositions[1]);
Debug.Log(standardPositions[2]);
}
private void Start()
{
GetList();
}
async void GetList()
{
var res = await ConfigHelper.mapApi.GetRecommendAreaList();
if (res.result)
{
if (res.data.Count >= 3)
{
Initial(res.data);
gameObject.SetActive(true);
}
else
{
gameObject.SetActive(false);
}
}
}
public void Initial(List<MapRouteAreaItem> list)
{
int index = 0;
foreach (CanvasGroup c in itemList)
{
var area = list[index++];
c.GetComponent<NewRouteItemController>().Initial(area);
if (c.alpha != 1)
{
c.GetComponent<Button>().onClick.RemoveAllListeners();
if (c.transform.localPosition.x < 0)
{
c.GetComponent<Button>().onClick.AddListener(Right);
}
else
{
c.GetComponent<Button>().onClick.AddListener(Left);
}
}
}
currentIndex = 1;
this.list = list;
}
private void Right()
{
int center = GetCenterIndex(),
left = GetSideIndex(true),
right = GetSideIndex(false);
if (center == -1 || left == -1 || right == -1) return;
itemList[center].DOFade(0.5f, 0.5f);
itemList[center].GetComponent<RectTransform>().DOScale(Vector3.one * 0.8f, 0.5f);
itemList[center].GetComponent<RectTransform>().DOLocalMoveX(43, 0.5f);
itemList[right].GetComponent<RectTransform>().DOLocalMoveX(-43, 0.5f);
var area = list[((currentIndex++) + list.Count) % list.Count];
itemList[right].GetComponent<NewRouteItemController>().Initial(area);
if (currentIndex >= list.Count) currentIndex = 0;
itemList[left].DOFade(1, 0.5f);
itemList[left].GetComponent<RectTransform>().DOScale(Vector3.one, 0.5f);
itemList[left].GetComponent<RectTransform>().DOLocalMoveX(0, 0.5f);
itemList[left].transform.SetAsLastSibling();
//事件改变
itemList[left].GetComponent<Button>().onClick.RemoveAllListeners();
itemList[left].GetComponent<Button>().onClick.AddListener(()=>
{
if (itemList[left].transform.localPosition.x == 0)
{
UIManager.ShowNewRouteDetailPanel(itemList[left].GetComponent<NewRouteItemController>().Area);
}
});
itemList[center].GetComponent<Button>().onClick.RemoveAllListeners();
itemList[center].GetComponent<Button>().onClick.AddListener(Left);
itemList[right].GetComponent<Button>().onClick.RemoveAllListeners();
itemList[right].GetComponent<Button>().onClick.AddListener(Right);
}
private void Left()
{
int center = GetCenterIndex(),
left = GetSideIndex(true),
right = GetSideIndex(false);
if (center == -1 || left == -1 || right == -1) return;
itemList[center].DOFade(0.5f, 0.5f);
itemList[center].GetComponent<RectTransform>().DOScale(Vector3.one*0.8f, 0.5f);
itemList[center].GetComponent<RectTransform>().DOLocalMoveX(-43, 0.5f);
itemList[left].GetComponent<RectTransform>().DOLocalMoveX(43, 0.5f);
var area = list[((currentIndex--) + list.Count) % list.Count];
var centerArea = list[currentIndex + 1];
itemList[left].GetComponent<NewRouteItemController>().Initial(area);
if (currentIndex < 0) currentIndex = list.Count - 1;
itemList[right].DOFade(1, 0.5f);
itemList[right].GetComponent<RectTransform>().DOScale(Vector3.one, 0.5f);
itemList[right].GetComponent<RectTransform>().DOLocalMoveX(0, 0.5f);
itemList[right].transform.SetAsLastSibling();
//事件改变
itemList[right].GetComponent<Button>().onClick.RemoveAllListeners();
itemList[right].GetComponent<Button>().onClick.AddListener(() =>
{
if (itemList[right].transform.localPosition.x == 0)
{
UIManager.ShowNewRouteDetailPanel(itemList[right].GetComponent<NewRouteItemController>().Area);
}
});
itemList[center].GetComponent<Button>().onClick.RemoveAllListeners();
itemList[center].GetComponent<Button>().onClick.AddListener(Right);
itemList[left].GetComponent<Button>().onClick.RemoveAllListeners();
itemList[left].GetComponent<Button>().onClick.AddListener(Left);
}
int GetCenterIndex()
{
return itemList.FindIndex(x => x.transform.localPosition.x == 0);
}
int GetSideIndex(bool left)
{
return itemList.FindIndex(x => left ? x.transform.localPosition.x < 0 : x.transform.localPosition.x > 0);
}
// Update is called once per frame
void Update()
{
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 99085319355aa0f44a5db27b26f6ec95
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: cbfad999c612c244f9a6c609a97122ca
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,20 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a403a09e241a0480a957591ea60fb785, type: 3}
m_Name: settings
m_EditorClassIdentifier:
usesCleartextTraffic: 1
writeExternalStorage: 0
accessFineLocation: 0
addsKotlin: 1
addsAndroidBrowser: 1
enableJetifier: 1

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 580a44b4404956543a86c106381eae18
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -28,7 +28,6 @@ public static class XCodePostProcessBuild
SetAssociatedDomains(projectPath, "wx.powerfun.com.cn");
Assets.NativeLocale.AddLocalizedStringsIOS(pathToBuiltProject, Path.Combine(Application.dataPath, "Editor/Locale"));
}
private static void SetFrameworksAndBuildSettings(string path)
{
PBXProject proj = new PBXProject();
@ -46,6 +45,10 @@ public static class XCodePostProcessBuild
proj.AddFrameworkToProject(target, csAddFrameworks[i], false);
}
//苹果登录配置项
//proj.AddCapability(target, PBXCapabilityType.SignInWithApple);
proj.AddFrameworkToProject(proj.GetUnityFrameworkTargetGuid(), "AuthenticationServices.framework", false);
File.WriteAllText(path, proj.WriteToString());
}
@ -98,7 +101,8 @@ public static class XCodePostProcessBuild
var entitlements = new ProjectCapabilityManager(pbxProjectPath, entitlementsFileName, targetName);
entitlements.AddAssociatedDomains(new string[] { "applinks:" + domainUrl });
//苹果登录
entitlements.AddSignInWithApple();
entitlements.WriteToFile();
}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e076935cb7a13e942a62cc26cfd53401
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 00a558accb32e4d4c98b416ab890ed1b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,37 @@
fileFormatVersion: 2
guid: bb6999c8a5ce4ba99688ec579babe5b7
labels:
- gvh
- gvh_targets-editor
- gvh_version-1.2.135.0
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
defineConstraints: []
isPreloaded: 0
isOverridable: 0
isExplicitlyReferenced: 0
validateReferences: 1
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

8
Assets/FacebookSDK.meta Normal file
View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e35dd3967d7d19e4daab702656eb05dc
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f015a0243569fdd499d97c148a25456c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: AccessTokenMenu
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4cc408e158eec46b28b93a44fc8819ff, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 67cb5b2387b8e4ec9b2fa69ad9510e9b
timeCreated: 1447720184
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: AppEvents
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e3c0dd81ff77c4c30834810815c69f6d, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 68ab940fa15e34433bff18301686b080
timeCreated: 1434663633
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: AppLinks
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f9f0b7257fa054227be6e26bf1f6b339, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 4ac12dfde6570493291366d0ab3eb20d
timeCreated: 1434663633
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: AppRequests
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3b4c675f81a254b87adc8ad01006c580, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c2250c9c5cf00425384401321f8dffb4
timeCreated: 1434135388
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: DialogShare
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e93c4155902d3496399630ee494eab6b, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 190c345841ecc464e9a122f04369757e
timeCreated: 1434132966
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: GraphRequest
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 23c3cb06c2209474e9a8441e2712d5d2, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 444ae7ddf432b457a97bfe42021075e3
timeCreated: 1434488369
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 0
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 1
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &17281797
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 17281802}
- 20: {fileID: 17281801}
- 92: {fileID: 17281800}
- 124: {fileID: 17281799}
- 81: {fileID: 17281798}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &17281798
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!124 &17281799
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!92 &17281800
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
--- !u!20 &17281801
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &17281802
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 17281797}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1482271768
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1482271770}
- 114: {fileID: 1482271769}
m_Layer: 0
m_Name: LogView
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1482271769
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 910cbe16250cb4363b70464c39fc701a, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!4 &1482271770
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1482271768}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c07ff0bf6bea74c2eb681ac0cae44265
timeCreated: 1434143106
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .200000003, g: .200000003, b: .200000003, a: 1}
m_AmbientEquatorColor: {r: .200000003, g: .200000003, b: .200000003, a: 1}
m_AmbientGroundColor: {r: .200000003, g: .200000003, b: .200000003, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 1
m_BakeResolution: 50
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 0
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666657
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &787078726
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 787078731}
- 20: {fileID: 787078730}
- 92: {fileID: 787078729}
- 124: {fileID: 787078728}
- 81: {fileID: 787078727}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &787078727
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
--- !u!124 &787078728
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
--- !u!92 &787078729
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
--- !u!20 &787078730
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 100
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &787078731
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1988862590
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1988862591}
- 114: {fileID: 1988862593}
m_Layer: 0
m_Name: MainMenu
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1988862591
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1988862590}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!114 &1988862593
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1988862590}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 922e3ad8d88a146b3b392cd8c84edd6a, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@ -0,0 +1,6 @@
fileFormatVersion: 2
guid: 7c38a8c9adc9d5c4b869612e4033ead8
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,212 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .200000003, g: .200000003, b: .200000003, a: 1}
m_AmbientEquatorColor: {r: .200000003, g: .200000003, b: .200000003, a: 1}
m_AmbientGroundColor: {r: .200000003, g: .200000003, b: .200000003, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 1
m_BakeResolution: 50
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 0
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_ReflectionCompression: 2
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666657
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &787078726
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 787078731}
- 20: {fileID: 787078730}
- 92: {fileID: 787078729}
- 124: {fileID: 787078728}
- 81: {fileID: 787078727}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &787078727
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
--- !u!124 &787078728
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
--- !u!92 &787078729
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
--- !u!20 &787078730
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: .23137255, g: .349019617, b: .596078455, a: 1}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 100
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &787078731
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 787078726}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 1, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1988862590
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1988862591}
- 114: {fileID: 1988862593}
m_Layer: 0
m_Name: Pay
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1988862591
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1988862590}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -6.42004156, y: -8.74592876, z: -1.64325905}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!114 &1988862593
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1988862590}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7f08c9721703046ec883e57562184726, type: 3}
m_Name:
m_EditorClassIdentifier:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3ee189cdb21ea4bdb9d7022a0780c44c
timeCreated: 1441927990
licenseType: Pro
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 69127c4c57aff0a4ebdbc24c5fd306ea
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,263 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.SceneManagement;
internal class ConsoleBase : MonoBehaviour
{
private const int DpiScalingFactor = 160;
private static Stack<string> menuStack = new Stack<string>();
private string status = "Ready";
private string lastResponse = string.Empty;
private Vector2 scrollPosition = Vector2.zero;
// DPI scaling
private float? scaleFactor;
private GUIStyle textStyle;
private GUIStyle buttonStyle;
private GUIStyle textInputStyle;
private GUIStyle labelStyle;
protected static int ButtonHeight
{
get
{
return Constants.IsMobile ? 60 : 24;
}
}
protected static int MainWindowWidth
{
get
{
return Constants.IsMobile ? Screen.width - 30 : 700;
}
}
protected static int MainWindowFullWidth
{
get
{
return Constants.IsMobile ? Screen.width : 760;
}
}
protected static int MarginFix
{
get
{
return Constants.IsMobile ? 0 : 48;
}
}
protected static Stack<string> MenuStack
{
get
{
return ConsoleBase.menuStack;
}
set
{
ConsoleBase.menuStack = value;
}
}
protected string Status
{
get
{
return this.status;
}
set
{
this.status = value;
}
}
protected Texture2D LastResponseTexture { get; set; }
protected string LastResponse
{
get
{
return this.lastResponse;
}
set
{
this.lastResponse = value;
}
}
protected Vector2 ScrollPosition
{
get
{
return this.scrollPosition;
}
set
{
this.scrollPosition = value;
}
}
// Note we assume that these styles will be accessed from OnGUI otherwise the
// unity APIs will fail.
protected float ScaleFactor
{
get
{
if (!this.scaleFactor.HasValue)
{
this.scaleFactor = Screen.dpi / ConsoleBase.DpiScalingFactor;
}
return this.scaleFactor.Value;
}
}
protected int FontSize
{
get
{
return (int)Math.Round(this.ScaleFactor * 16);
}
}
protected GUIStyle TextStyle
{
get
{
if (this.textStyle == null)
{
this.textStyle = new GUIStyle(GUI.skin.textArea);
this.textStyle.alignment = TextAnchor.UpperLeft;
this.textStyle.wordWrap = true;
this.textStyle.padding = new RectOffset(10, 10, 10, 10);
this.textStyle.stretchHeight = true;
this.textStyle.stretchWidth = false;
this.textStyle.fontSize = this.FontSize;
}
return this.textStyle;
}
}
protected GUIStyle ButtonStyle
{
get
{
if (this.buttonStyle == null)
{
this.buttonStyle = new GUIStyle(GUI.skin.button);
this.buttonStyle.fontSize = this.FontSize;
}
return this.buttonStyle;
}
}
protected GUIStyle TextInputStyle
{
get
{
if (this.textInputStyle == null)
{
this.textInputStyle = new GUIStyle(GUI.skin.textField);
this.textInputStyle.fontSize = this.FontSize;
}
return this.textInputStyle;
}
}
protected GUIStyle LabelStyle
{
get
{
if (this.labelStyle == null)
{
this.labelStyle = new GUIStyle(GUI.skin.label);
this.labelStyle.fontSize = this.FontSize;
}
return this.labelStyle;
}
}
protected virtual void Awake()
{
// Limit the framerate to 60 to keep device from burning through cpu
Application.targetFrameRate = 60;
}
protected bool Button(string label)
{
return GUILayout.Button(
label,
this.ButtonStyle,
GUILayout.MinHeight(ConsoleBase.ButtonHeight * this.ScaleFactor),
GUILayout.MaxWidth(ConsoleBase.MainWindowWidth));
}
protected void LabelAndTextField(string label, ref string text)
{
GUILayout.BeginHorizontal();
GUILayout.Label(label, this.LabelStyle, GUILayout.MaxWidth(200 * this.ScaleFactor));
text = GUILayout.TextField(
text,
this.TextInputStyle,
GUILayout.MaxWidth(ConsoleBase.MainWindowWidth - 150));
GUILayout.EndHorizontal();
}
protected bool IsHorizontalLayout()
{
#if UNITY_IOS || UNITY_ANDROID
return Screen.orientation == ScreenOrientation.Landscape;
#else
return true;
#endif
}
protected void SwitchMenu(Type menuClass)
{
ConsoleBase.menuStack.Push(this.GetType().Name);
SceneManager.LoadScene(menuClass.Name);
}
protected void GoBack()
{
if (ConsoleBase.menuStack.Any())
{
SceneManager.LoadScene(ConsoleBase.menuStack.Pop());
}
}
}
}

View File

@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: e8659f5605d094c19a8b7ef9471c3603
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,71 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
internal class LogView : ConsoleBase
{
private static string datePatt = @"M/d/yyyy hh:mm:ss tt";
private static IList<string> events = new List<string>();
public static void AddLog(string log)
{
events.Insert(0, string.Format("{0}\n{1}\n", DateTime.Now.ToString(datePatt), log));
}
protected void OnGUI()
{
GUILayout.BeginVertical();
//GUILayout.Space(Screen.safeArea.yMin + 10);
if (this.Button("Back"))
{
this.GoBack();
}
#if UNITY_IOS || UNITY_ANDROID || UNITY_WP8
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector2 scrollPosition = this.ScrollPosition;
scrollPosition.y += Input.GetTouch(0).deltaPosition.y;
this.ScrollPosition = scrollPosition;
}
#endif
this.ScrollPosition = GUILayout.BeginScrollView(
this.ScrollPosition,
GUILayout.MinWidth(ConsoleBase.MainWindowFullWidth));
GUILayout.TextArea(
string.Join("\n", events.ToArray()),
this.TextStyle,
GUILayout.ExpandHeight(true),
GUILayout.MaxWidth(ConsoleBase.MainWindowWidth));
GUILayout.EndScrollView();
GUILayout.EndVertical();
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 910cbe16250cb4363b70464c39fc701a
timeCreated: 1434143113
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,232 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System;
using System.Linq;
using UnityEngine;
internal abstract class MenuBase : ConsoleBase
{
private static ShareDialogMode shareDialogMode;
protected abstract void GetGui();
protected virtual bool ShowDialogModeSelector()
{
return false;
}
protected virtual bool ShowBackButton()
{
return true;
}
protected void HandleResult(IResult result)
{
if (result == null)
{
this.LastResponse = "Null Response\n";
LogView.AddLog(this.LastResponse);
return;
}
this.LastResponseTexture = null;
// Some platforms return the empty string instead of null.
if (!string.IsNullOrEmpty(result.Error))
{
this.Status = "Error - Check log for details";
this.LastResponse = "Error Response:\n" + result.Error;
}
else if (result.Cancelled)
{
this.Status = "Cancelled - Check log for details";
this.LastResponse = "Cancelled Response:\n" + result.RawResult;
}
else if (!string.IsNullOrEmpty(result.RawResult))
{
this.Status = "Success - Check log for details";
this.LastResponse = "Success Response:\n" + result.RawResult;
}
else
{
this.LastResponse = "Empty Response\n";
}
LogView.AddLog(result.ToString());
}
protected void HandleLimitedLoginResult(IResult result)
{
if (result == null)
{
this.LastResponse = "Null Response\n";
LogView.AddLog(this.LastResponse);
return;
}
this.LastResponseTexture = null;
// Some platforms return the empty string instead of null.
if (!string.IsNullOrEmpty(result.Error))
{
this.Status = "Error - Check log for details";
this.LastResponse = "Error Response:\n" + result.Error;
}
else if (result.Cancelled)
{
this.Status = "Cancelled - Check log for details";
this.LastResponse = "Cancelled Response:\n" + result.RawResult;
}
else if (!string.IsNullOrEmpty(result.RawResult))
{
this.Status = "Success - Check log for details";
this.LastResponse = "Success Response:\n" + result.RawResult;
}
else
{
this.LastResponse = "Empty Response\n";
}
String resultSummary = "Limited login results\n\n";
var profile = FB.Mobile.CurrentProfile();
resultSummary += "name: " + profile.Name + "\n";
resultSummary += "id: " + profile.UserID + "\n";
resultSummary += "email: " + profile.Email + "\n";
resultSummary += "pic URL: " + profile.ImageURL + "\n";
resultSummary += "birthday: " + profile.Birthday + "\n";
resultSummary += "age range: " + profile.AgeRange + "\n";
resultSummary += "first name: " + profile.FirstName + "\n";
resultSummary += "middle name: " + profile.MiddleName + "\n";
resultSummary += "last name: " + profile.LastName + "\n";
resultSummary += "friends: " + String.Join(",", profile.FriendIDs) + "\n";
resultSummary += "hometown: " + profile.Hometown?.Name + "\n";
resultSummary += "location: " + profile.Location?.Name + "\n";
resultSummary += "gender: " + profile.Gender + "\n";
LogView.AddLog(resultSummary);
}
protected void OnGUI()
{
if (this.IsHorizontalLayout())
{
GUILayout.BeginHorizontal();
GUILayout.BeginVertical();
}
//GUILayout.Space(Screen.safeArea.yMin + 10);
GUILayout.Label(this.GetType().Name, this.LabelStyle);
this.AddStatus();
#if UNITY_IOS || UNITY_ANDROID || UNITY_WP8
if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Moved)
{
Vector2 scrollPosition = this.ScrollPosition;
scrollPosition.y += Input.GetTouch(0).deltaPosition.y;
this.ScrollPosition = scrollPosition;
}
#endif
this.ScrollPosition = GUILayout.BeginScrollView(
this.ScrollPosition,
GUILayout.MinWidth(ConsoleBase.MainWindowFullWidth));
GUILayout.BeginHorizontal();
if (this.ShowBackButton())
{
this.AddBackButton();
}
this.AddLogButton();
if (this.ShowBackButton())
{
// Fix GUILayout margin issues
GUILayout.Label(GUIContent.none, GUILayout.MinWidth(ConsoleBase.MarginFix));
}
GUILayout.EndHorizontal();
if (this.ShowDialogModeSelector())
{
this.AddDialogModeButtons();
}
GUILayout.BeginVertical();
// Add the ui from decendants
this.GetGui();
GUILayout.Space(10);
GUILayout.EndVertical();
GUILayout.EndScrollView();
}
private void AddStatus()
{
GUILayout.Space(5);
GUILayout.Box("Status: " + this.Status, this.TextStyle, GUILayout.MinWidth(ConsoleBase.MainWindowWidth));
}
private void AddBackButton()
{
GUI.enabled = ConsoleBase.MenuStack.Any();
if (this.Button("Back"))
{
this.GoBack();
}
GUI.enabled = true;
}
private void AddLogButton()
{
if (this.Button("Log"))
{
this.SwitchMenu(typeof(LogView));
}
}
private void AddDialogModeButtons()
{
GUILayout.BeginHorizontal();
foreach (var value in Enum.GetValues(typeof(ShareDialogMode)))
{
this.AddDialogModeButton((ShareDialogMode)value);
}
GUILayout.EndHorizontal();
}
private void AddDialogModeButton(ShareDialogMode mode)
{
bool enabled = GUI.enabled;
GUI.enabled = enabled && (mode != shareDialogMode);
if (this.Button(mode.ToString()))
{
shareDialogMode = mode;
FB.Mobile.ShareDialogMode = mode;
}
GUI.enabled = enabled;
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 8f28f9112a7d44d3c999fbd95333abbb
timeCreated: 1465553943
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: f187a1fd548e2a049a6cfef1dcef73e6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,33 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
internal class AccessTokenMenu : MenuBase
{
protected override void GetGui()
{
if (this.Button("Refresh Access Token"))
{
FB.Mobile.RefreshCurrentAccessToken(this.HandleResult);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 4cc408e158eec46b28b93a44fc8819ff
timeCreated: 1447720427
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,45 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System.Collections.Generic;
internal class AppEvents : MenuBase
{
protected override void GetGui()
{
if (this.Button("Log FB App Event"))
{
this.Status = "Logged FB.AppEvent";
FB.LogAppEvent(
AppEventName.UnlockedAchievement,
null,
new Dictionary<string, object>()
{
{ AppEventParameterName.Description, "Clicked 'Log AppEvent' button" }
});
LogView.AddLog(
"You may see results showing up at https://www.facebook.com/analytics/"
+ FB.AppId);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e3c0dd81ff77c4c30834810815c69f6d
timeCreated: 1435018470
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,38 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
internal class AppLinks : MenuBase
{
protected override void GetGui()
{
if (this.Button("Get App Link"))
{
FB.GetAppLink(this.HandleResult);
}
if (Constants.IsMobile && this.Button("Fetch Deferred App Link"))
{
FB.Mobile.FetchDeferredAppLinkData(this.HandleResult);
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: f9f0b7257fa054227be6e26bf1f6b339
timeCreated: 1435164891
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,143 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
internal class AppRequests : MenuBase
{
private string requestMessage = string.Empty;
private string requestTo = string.Empty;
private string requestFilter = string.Empty;
private string requestExcludes = string.Empty;
private string requestMax = string.Empty;
private string requestData = string.Empty;
private string requestTitle = string.Empty;
private string requestObjectID = string.Empty;
private int selectedAction = 0;
private string[] actionTypeStrings =
{
"NONE",
OGActionType.SEND.ToString(),
OGActionType.ASKFOR.ToString(),
OGActionType.TURN.ToString()
};
protected override void GetGui()
{
if (this.Button("Select - Filter None"))
{
FB.AppRequest("Test Message", callback: this.HandleResult);
}
if (this.Button("Select - Filter app_users"))
{
List<object> filter = new List<object>() { "app_users" };
// workaround for mono failing with named parameters
FB.AppRequest("Test Message", null, filter, null, 0, string.Empty, string.Empty, this.HandleResult);
}
if (this.Button("Select - Filter app_non_users"))
{
List<object> filter = new List<object>() { "app_non_users" };
FB.AppRequest("Test Message", null, filter, null, 0, string.Empty, string.Empty, this.HandleResult);
}
// Custom options
this.LabelAndTextField("Message: ", ref this.requestMessage);
this.LabelAndTextField("To (optional): ", ref this.requestTo);
this.LabelAndTextField("Filter (optional): ", ref this.requestFilter);
this.LabelAndTextField("Exclude Ids (optional): ", ref this.requestExcludes);
this.LabelAndTextField("Filters: ", ref this.requestExcludes);
this.LabelAndTextField("Max Recipients (optional): ", ref this.requestMax);
this.LabelAndTextField("Data (optional): ", ref this.requestData);
this.LabelAndTextField("Title (optional): ", ref this.requestTitle);
GUILayout.BeginHorizontal();
GUILayout.Label(
"Request Action (optional): ",
this.LabelStyle,
GUILayout.MaxWidth(200 * this.ScaleFactor));
this.selectedAction = GUILayout.Toolbar(
this.selectedAction,
this.actionTypeStrings,
this.ButtonStyle,
GUILayout.MinHeight(ConsoleBase.ButtonHeight * this.ScaleFactor),
GUILayout.MaxWidth(ConsoleBase.MainWindowWidth - 150));
GUILayout.EndHorizontal();
this.LabelAndTextField("Request Object ID (optional): ", ref this.requestObjectID);
if (this.Button("Custom App Request"))
{
OGActionType? action = this.GetSelectedOGActionType();
if (action != null)
{
FB.AppRequest(
this.requestMessage,
action.Value,
this.requestObjectID,
string.IsNullOrEmpty(this.requestTo) ? null : this.requestTo.Split(','),
this.requestData,
this.requestTitle,
this.HandleResult);
}
else
{
FB.AppRequest(
this.requestMessage,
string.IsNullOrEmpty(this.requestTo) ? null : this.requestTo.Split(','),
string.IsNullOrEmpty(this.requestFilter) ? null : this.requestFilter.Split(',').OfType<object>().ToList(),
string.IsNullOrEmpty(this.requestExcludes) ? null : this.requestExcludes.Split(','),
string.IsNullOrEmpty(this.requestMax) ? 0 : int.Parse(this.requestMax),
this.requestData,
this.requestTitle,
this.HandleResult);
}
}
}
private OGActionType? GetSelectedOGActionType()
{
string actionString = this.actionTypeStrings[this.selectedAction];
if (actionString == OGActionType.SEND.ToString())
{
return OGActionType.SEND;
}
else if (actionString == OGActionType.ASKFOR.ToString())
{
return OGActionType.ASKFOR;
}
else if (actionString == OGActionType.TURN.ToString())
{
return OGActionType.TURN;
}
else
{
return null;
}
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 3b4c675f81a254b87adc8ad01006c580
timeCreated: 1435018470
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,125 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
internal class DialogShare : MenuBase
{
// Custom Share Link
private string shareLink = "https://developers.facebook.com/";
private string shareTitle = "Link Title";
private string shareDescription = "Link Description";
private string shareImage = "http://i.imgur.com/j4M7vCO.jpg";
// Custom Feed Share
private string feedTo = string.Empty;
private string feedLink = "https://developers.facebook.com/";
private string feedTitle = "Test Title";
private string feedCaption = "Test Caption";
private string feedDescription = "Test Description";
private string feedImage = "http://i.imgur.com/zkYlB.jpg";
private string feedMediaSource = string.Empty;
protected override bool ShowDialogModeSelector()
{
#if !UNITY_EDITOR && (UNITY_IOS || UNITY_ANDROID)
return true;
#else
return false;
#endif
}
protected override void GetGui()
{
bool enabled = GUI.enabled;
if (this.Button("Share - Link"))
{
FB.ShareLink(new Uri("https://developers.facebook.com/"), callback: this.HandleResult);
}
// Note: Web dialog doesn't support photo urls.
if (this.Button("Share - Link Photo"))
{
FB.ShareLink(
new Uri("https://developers.facebook.com/"),
"Link Share",
"Look I'm sharing a link",
new Uri("http://i.imgur.com/j4M7vCO.jpg"),
callback: this.HandleResult);
}
this.LabelAndTextField("Link", ref this.shareLink);
this.LabelAndTextField("Title", ref this.shareTitle);
this.LabelAndTextField("Description", ref this.shareDescription);
this.LabelAndTextField("Image", ref this.shareImage);
if (this.Button("Share - Custom"))
{
FB.ShareLink(
new Uri(this.shareLink),
this.shareTitle,
this.shareDescription,
new Uri(this.shareImage),
this.HandleResult);
}
GUI.enabled = enabled && (!Constants.IsEditor || (Constants.IsEditor && FB.IsLoggedIn));
if (this.Button("Feed Share - No To"))
{
FB.FeedShare(
string.Empty,
new Uri("https://developers.facebook.com/"),
"Test Title",
"Test caption",
"Test Description",
new Uri("http://i.imgur.com/zkYlB.jpg"),
string.Empty,
this.HandleResult);
}
this.LabelAndTextField("To", ref this.feedTo);
this.LabelAndTextField("Link", ref this.feedLink);
this.LabelAndTextField("Title", ref this.feedTitle);
this.LabelAndTextField("Caption", ref this.feedCaption);
this.LabelAndTextField("Description", ref this.feedDescription);
this.LabelAndTextField("Image", ref this.feedImage);
this.LabelAndTextField("Media Source", ref this.feedMediaSource);
if (this.Button("Feed Share - Custom"))
{
FB.FeedShare(
this.feedTo,
string.IsNullOrEmpty(this.feedLink) ? null : new Uri(this.feedLink),
this.feedTitle,
this.feedCaption,
this.feedDescription,
string.IsNullOrEmpty(this.feedImage) ? null : new Uri(this.feedImage),
this.feedMediaSource,
this.HandleResult);
}
GUI.enabled = enabled;
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: e93c4155902d3496399630ee494eab6b
timeCreated: 1435018470
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,93 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System.Collections;
using UnityEngine;
internal class GraphRequest : MenuBase
{
private string apiQuery = string.Empty;
private Texture2D profilePic;
protected override void GetGui()
{
bool enabled = GUI.enabled;
GUI.enabled = enabled && FB.IsLoggedIn;
if (this.Button("Basic Request - Me"))
{
FB.API("/me", HttpMethod.GET, this.HandleResult);
}
if (this.Button("Retrieve Profile Photo"))
{
FB.API("/me/picture", HttpMethod.GET, this.ProfilePhotoCallback);
}
if (this.Button("Take and Upload screenshot"))
{
this.StartCoroutine(this.TakeScreenshot());
}
this.LabelAndTextField("Request", ref this.apiQuery);
if (this.Button("Custom Request"))
{
FB.API(this.apiQuery, HttpMethod.GET, this.HandleResult);
}
if (this.profilePic != null)
{
GUILayout.Box(this.profilePic);
}
GUI.enabled = enabled;
}
private void ProfilePhotoCallback(IGraphResult result)
{
if (string.IsNullOrEmpty(result.Error) && result.Texture != null)
{
this.profilePic = result.Texture;
}
this.HandleResult(result);
}
private IEnumerator TakeScreenshot()
{
yield return new WaitForEndOfFrame();
var width = Screen.width;
var height = Screen.height;
var tex = new Texture2D(width, height, TextureFormat.RGB24, false);
// Read screen contents into the texture
tex.ReadPixels(new Rect(0, 0, width, height), 0, 0);
tex.Apply();
byte[] screenshot = tex.EncodeToPNG();
var wwwForm = new WWWForm();
wwwForm.AddBinaryData("image", screenshot, "InteractiveConsole.png");
wwwForm.AddField("message", "herp derp. I did a thing! Did I do this right?");
FB.API("me/photos", HttpMethod.POST, this.HandleResult, wwwForm);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 23c3cb06c2209474e9a8441e2712d5d2
timeCreated: 1435018470
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,274 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
internal sealed class MainMenu : MenuBase
{
enum Scope {
PublicProfile = 0b_0000_0001,
UserFriends = 0b_0000_0010,
UserBirthday = 0b_0000_0100,
UserAgeRange = 0b_0000_1000,
PublishActions = 0b_0001_0000,
UserLocation = 0b_0010_0000,
UserHometown = 0b_0100_0000,
UserGender = 0b_1000_0000,
};
protected override bool ShowBackButton()
{
return false;
}
protected override void GetGui()
{
GUILayout.BeginVertical();
bool enabled = GUI.enabled;
if (this.Button("FB.Init"))
{
FB.Init(this.OnInitComplete, this.OnHideUnity);
this.Status = "FB.Init() called with " + FB.AppId;
}
GUILayout.BeginHorizontal();
GUI.enabled = enabled && FB.IsInitialized;
if (this.Button("Classic login"))
{
this.CallFBLogin(LoginTracking.ENABLED, Scope.PublicProfile);
this.Status = "Classic login called";
}
if (this.Button("Get publish_actions"))
{
this.CallFBLoginForPublish();
this.Status = "Login (for publish_actions) called";
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
if (this.Button("Limited login"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile);
this.Status = "Limited login called";
}
if (this.Button("Limited login +friends"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile | Scope.UserFriends);
this.Status = "Limited login +friends called";
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
if (this.Button("Limited Login+bday"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile | Scope.UserBirthday);
this.Status = "Limited login +bday called";
}
if (this.Button("Limited Login+agerange"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile | Scope.UserAgeRange);
this.Status = "Limited login +agerange called";
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
if (this.Button("Limited Login + location"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile | Scope.UserLocation);
}
if (this.Button("Limited Login + Hometown"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile | Scope.UserHometown);
}
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
if (this.Button("Limited Login + Gender"))
{
this.CallFBLogin(LoginTracking.LIMITED, Scope.PublicProfile | Scope.UserGender);
}
GUI.enabled = FB.IsLoggedIn;
// Fix GUILayout margin issues
GUILayout.Label(GUIContent.none, GUILayout.MinWidth(ConsoleBase.MarginFix));
GUILayout.EndHorizontal();
GUILayout.BeginHorizontal();
// Fix GUILayout margin issues
GUILayout.Label(GUIContent.none, GUILayout.MinWidth(ConsoleBase.MarginFix));
GUILayout.EndHorizontal();
#if !UNITY_WEBGL
if (this.Button("Logout"))
{
CallFBLogout();
this.Status = "Logout called";
}
#endif
GUI.enabled = enabled && FB.IsInitialized;
if (this.Button("Share Dialog"))
{
this.SwitchMenu(typeof(DialogShare));
}
if (this.Button("App Requests"))
{
this.SwitchMenu(typeof(AppRequests));
}
if (this.Button("Graph Request"))
{
this.SwitchMenu(typeof(GraphRequest));
}
if (Constants.IsWeb && this.Button("Pay"))
{
this.SwitchMenu(typeof(Pay));
}
if (this.Button("App Events"))
{
this.SwitchMenu(typeof(AppEvents));
}
if (this.Button("App Links"))
{
this.SwitchMenu(typeof(AppLinks));
}
if (Constants.IsMobile && this.Button("Access Token"))
{
this.SwitchMenu(typeof(AccessTokenMenu));
}
GUILayout.EndVertical();
GUI.enabled = enabled;
}
private void CallFBLogin(LoginTracking mode, Scope scopemask)
{
List<string> scopes = new List<string>();
if((scopemask & Scope.PublicProfile) > 0) {
scopes.Add("public_profile");
}
if((scopemask & Scope.UserFriends) > 0)
{
scopes.Add("user_friends");
}
if((scopemask & Scope.UserBirthday) > 0)
{
scopes.Add("user_birthday");
}
if((scopemask & Scope.UserAgeRange) > 0)
{
scopes.Add("user_age_range");
}
if ((scopemask & Scope.UserLocation) > 0)
{
scopes.Add("user_location");
}
if ((scopemask & Scope.UserHometown) > 0)
{
scopes.Add("user_hometown");
}
if ((scopemask & Scope.UserGender) > 0)
{
scopes.Add("user_gender");
}
if (mode == LoginTracking.ENABLED)
{
FB.Mobile.LoginWithTrackingPreference(LoginTracking.ENABLED, scopes, "classic_nonce123", this.HandleResult);
}
else // mode == loginTracking.LIMITED
{
FB.Mobile.LoginWithTrackingPreference(LoginTracking.LIMITED, scopes, "limited_nonce123", this.HandleLimitedLoginResult);
}
}
private void CallFBLoginForPublish()
{
// It is generally good behavior to split asking for read and publish
// permissions rather than ask for them all at once.
//
// In your own game, consider postponing this call until the moment
// you actually need it.
FB.LogInWithPublishPermissions(new List<string>() { "publish_actions" }, this.HandleResult);
}
private void CallFBLogout()
{
FB.LogOut();
}
private void OnInitComplete()
{
this.Status = "Success - Check log for details";
this.LastResponse = "Success Response: OnInitComplete Called\n";
string logMessage = string.Format(
"OnInitCompleteCalled IsLoggedIn='{0}' IsInitialized='{1}'",
FB.IsLoggedIn,
FB.IsInitialized);
LogView.AddLog(logMessage);
if (AccessToken.CurrentAccessToken != null)
{
LogView.AddLog(AccessToken.CurrentAccessToken.ToString());
}
}
private void OnHideUnity(bool isGameShown)
{
this.Status = "Success - Check log for details";
this.LastResponse = string.Format("Success Response: OnHideUnity Called {0}\n", isGameShown);
LogView.AddLog("Is game shown: " + isGameShown);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 922e3ad8d88a146b3b392cd8c84edd6a
timeCreated: 1465553943
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,45 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
namespace Facebook.Unity.Example
{
using UnityEngine;
internal class Pay : MenuBase
{
private string payProduct = string.Empty;
protected override void GetGui()
{
this.LabelAndTextField("Product: ", ref this.payProduct);
if (this.Button("Call Pay"))
{
this.CallFBPay();
}
GUILayout.Space(10);
}
private void CallFBPay()
{
FB.Canvas.Pay(this.payProduct, callback: this.HandleResult);
}
}
}

View File

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: 7f08c9721703046ec883e57562184726
timeCreated: 1435018470
licenseType: Pro
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 186fe0001a4d8494b8517e800edadd80
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,55 @@
fileFormatVersion: 2
guid: 6f2bd1fb3a7ec4616b4311f171db577d
TextureImporter:
fileIDToRecycleName: {}
serializedVersion: 2
mipmaps:
mipMapMode: 0
enableMipMap: 1
linearTexture: 0
correctGamma: 0
fadeOut: 0
borderMipMap: 0
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
grayScaleToAlpha: 0
generateCubemap: 0
cubemapConvolution: 0
cubemapConvolutionSteps: 7
cubemapConvolutionExponent: 1.5
seamlessCubemap: 0
textureFormat: -1
maxTextureSize: 1024
textureSettings:
filterMode: -1
aniso: -1
mipBias: -1
wrapMode: -1
nPOTScale: 1
lightmap: 0
rGBM: 0
compressionQuality: 50
allowsAlphaSplitting: 0
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
alphaIsTransparency: 0
textureType: -1
buildTargetSettings: []
spriteSheet:
sprites: []
outline: []
spritePackingTag:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9cce7a0a3f6331044aef446fb39f0b98
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3f5f2fb4268a83643a462f3717ee7f97
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,154 @@
fileFormatVersion: 2
guid: fb286cd0f33ce4f5e81baf10dab8d865
timeCreated: 1561663365
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 0
Exclude Editor: 1
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 1
Exclude tvOS: 1
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
data:
first:
Android: Android
second:
enabled: 1
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: None
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
iPhone: iOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
data:
first:
tvOS: tvOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 304660bc365f9034db9aa6872a54f6b8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: abcfdae5d23df40e9a7ec554ddc17a22
timeCreated: 1623191241
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
Android: Android
second:
enabled: 1
settings: {}
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c306adc6985aea64e8e8a093aba2e61c
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,276 @@
/**
* Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
*
* You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
* copy, modify, and distribute this software in source code or binary form for use
* in connection with the web services and APIs provided by Facebook.
*
* As with any software that integrates with the Facebook platform, your use of
* this software is subject to the Facebook Developer Principles and Policies
* [http://developers.facebook.com/policy/]. This copyright notice shall be
* included in all copies or substantial portions of the software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
var FBUnityLib = {
$FBUnity: {
init: function(connectFacebookUrl, locale, debug, initParams, status) {
// make element for js sdk
if (!document.getElementById('fb-root')) {
var fbroot = document.createElement('div');
fbroot.id = 'fb-root';
var body = document.getElementsByTagName('body')[0];
body.insertBefore(fbroot, body.children[0]);
}
// load js sdk
var js, id = 'facebook-jssdk', ref = document.getElementsByTagName('script')[0];
if (document.getElementById(id)) {return;}
js = document.createElement('script'); js.id = id; js.async = true;
js.src = connectFacebookUrl + '/' + locale + '/sdk' + (debug ? '/debug' : '') + '.js';
ref.parentNode.insertBefore(js, ref);
// once jssdk is loaded, init
window.fbAsyncInit = function() {
initParams = JSON.parse(initParams);
initParams.hideFlashCallback = FBUnity.onHideUnity;
FB.init(initParams);
// send url to unity - needed for deep linking
FBUnity.sendMessage('OnUrlResponse', location.href);
if (status) {
FBUnity.onInitWithStatus();
} else {
FBUnity.onInit();
}
};
},
initScreenPosition: function() {
if (!screenPosition) {
var body = document.getElementsByTagName('body')[0];
var screenPosition = {omo : body.onmouseover || function(){}, iframeX: 0, iframeY: 0};
body.onmouseover = function(e) {
// Distance from top of screen to top of client area
screenPosition.iframeX = e.screenX - e.clientX;
screenPosition.iframeY = e.screenY - e.clientY;
screenPosition.omo(e);
}
}
},
sendMessage: function(method, param) {
SendMessage('FacebookJsBridge', method, param);
},
login: function(scope, callback_id) {
FB.login(FBUnity.loginCallback.bind(null, callback_id), scope ? {scope: scope, auth_type: 'rerequest', return_scopes: true} : {return_scopes: true});
},
loginCallback: function(callback_id, response) {
response = {'callback_id': callback_id, 'response': response};
FBUnity.sendMessage('OnLoginComplete', JSON.stringify(response));
},
onInitWithStatus: function() {
var timeoutHandler = setTimeout(function() { requestFailed(); }, 3000);
function requestFailed() {
FBUnity.onInit();
}
// try to get the login status right after init'ing
FB.getLoginStatus(function(response) {
clearTimeout(timeoutHandler);
FBUnity.onInit(response);
});
},
onInit: function(response) {
var jsonResponse = '';
if (response && response.authResponse) {
jsonResponse = JSON.stringify(response);
}
FBUnity.sendMessage('OnInitComplete', jsonResponse);
FB.Event.subscribe('auth.authResponseChange', function(r){ FBUnity.onAuthResponseChange(r) });
FBUnity.logLoadingTime(response);
},
logLoadingTime: function(response) {
FB.Canvas.setDoneLoading(
function(result) {
// send implicitly event to log the time from the canvas pages load to facebook init being called.
FBUnity.logAppEvent('fb_canvas_time_till_init_complete', result.time_delta_ms / 1000, null);
}
);
},
onAuthResponseChange: function(response) {
FBUnity.sendMessage('OnFacebookAuthResponseChange', response ? JSON.stringify(response) : '');
},
apiCallback: function(query, response) {
response = {'query': query, 'response': response};
FBUnity.sendMessage('OnFacebookAPIResponse', JSON.stringify(response));
},
api: function(query) {
FB.api(query, FBUnity.apiCallback.bind(null, query));
},
activateApp: function() {
FB.AppEvents.activateApp();
},
uiCallback: function(uid, callbackMethodName, response) {
response = {'callback_id': uid, 'response': response};
FBUnity.sendMessage(callbackMethodName, JSON.stringify(response));
},
logout: function() {
FB.logout();
},
logAppEvent: function(eventName, valueToSum, parameters) {
FB.AppEvents.logEvent(
eventName,
valueToSum,
JSON.parse(parameters)
);
},
logPurchase: function(purchaseAmount, currency, parameters) {
FB.AppEvents.logPurchase(
purchaseAmount,
currency,
JSON.parse(parameters)
);
},
ui: function(x, uid, callbackMethodName) {
x = JSON.parse(x);
FB.ui(x, FBUnity.uiCallback.bind(null, uid, callbackMethodName));
},
hideUnity: function(direction) {
direction = direction || 'hide';
//TODO support this for webgl
var unityDiv = jQuery(u.getUnity());
if (direction == 'hide') {
FBUnity.sendMessage('OnFacebookFocus', 'hide');
} else /*show*/ {
FBUnity.sendMessage('OnFacebookFocus', 'show');
if (FBUnity.showScreenshotBackground.savedBackground) {
/*
if(fbShowScreenshotBackground.savedBackground == 'sentinel') {
jQuery('body').css('background', null);
} else {
jQuery('body').css('background', fbShowScreenshotBackground.savedBackground);
}
*/
}
hideUnity.savedCSS = FBUnity.showScreenshotBackground.savedBackground = null;
}
},
showScreenshotBackground: function(pngbytes) /*and hide unity*/ {
// window.screenxX and window.screenY = browser position
// window.screen.height and window.screen.width = screen size
// findPos, above, locates the iframe within the browser
/*
if (!fbShowScreenshotBackground.savedBackground)
fbShowScreenshotBackground.savedBackground = jQuery('body').css('background') || 'sentinel';
jQuery('body').css('background-image', 'url(data:image/png;base64,'+pngbytes+')');
jQuery('body').css(
'background-position',
-(screenPosition.iframeX)+'px '+
-(screenPosition.iframeY)+'px'
);
jQuery('body').css('background-size', '100%');
jquery('body').css('background-repeat', 'no-repeat');
// TODO: Zoom detection
*/
},
onHideUnity: function(info) {
if (info.state == 'opened') {
FBUnity.sendMessage('OnFacebookFocus', 'hide');
} else {
FBUnity.sendMessage('OnFacebookFocus', 'show');
}
}
},
init: function(connectFacebookUrl, locale, debug, initParams, status) {
var connectFacebookUrlString = Pointer_stringify(connectFacebookUrl);
var localeString = Pointer_stringify(locale);
var initParamsString = Pointer_stringify(initParams);
FBUnity.init(connectFacebookUrlString, localeString, debug, initParamsString, status);
},
initScreenPosition: function() {
FBUnity.initScreenPosition();
},
login: function(scope, callback_id) {
var scopeString = Pointer_stringify(scope);
var scopeArray = JSON.parse(scopeString);
var callback_idString = Pointer_stringify(callback_id);
FBUnity.login(scopeArray, callback_idString);
},
activateApp: function() {
FBUnity.activateApp();
},
logout: function() {
FBUnity.logout();
},
logAppEvent: function(eventName, valueToSum, parameters) {
var eventNameString = Pointer_stringify(eventName);
var parametersString = Pointer_stringify(parameters);
FBUnity.logAppEvent(eventNameString, valueToSum, parametersString);
},
logAppEventWithoutValue: function(eventName, parameters) {
var eventNameString = Pointer_stringify(eventName);
var parametersString = Pointer_stringify(parameters);
FBUnity.logAppEvent(eventNameString, null, parametersString);
},
logPurchase: function(purchaseAmount, currency, parameters) {
var currencyString = Pointer_stringify(currency);
var parametersString = Pointer_stringify(parameters);
FBUnity.logPurchase(purchaseAmount, currencyString, parametersString);
},
ui: function(x, uid, callbackMethodName) {
var xString = Pointer_stringify(x);
var uidString = Pointer_stringify(uid);
var callbackMethodNameString = Pointer_stringify(callbackMethodName);
FBUnity.ui(xString, uidString, callbackMethodNameString);
}
};
autoAddDeps(LibraryManager.library, '$FBUnity');
mergeInto(LibraryManager.library, FBUnityLib);

View File

@ -0,0 +1,36 @@
fileFormatVersion: 2
guid: 082cd93ddb11e4437b52ea3d121816d8
timeCreated: 1561663365
licenseType: Pro
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Facebook: WebGL
second:
enabled: 1
settings: {}
- first:
WebGL: WebGL
second:
enabled: 1
settings: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,160 @@
fileFormatVersion: 2
guid: c57105322a98c474faf1ce607f20c3f8
timeCreated: 1561663364
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 0
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 1
Exclude tvOS: 1
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
data:
first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: x86
data:
first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
WebGL: WebGL
second:
enabled: 1
settings: {}
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
iPhone: iOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
data:
first:
tvOS: tvOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bd6f82586c983d14881ca1a5d869b5c7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<dependencies>
<androidPackages>
<androidPackage spec="com.parse.bolts:bolts-android:1.4.0" />
<androidPackage spec="com.facebook.android:facebook-core:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-applinks:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-login:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-share:[11.0, 12)" />
<androidPackage spec="com.facebook.android:facebook-gamingservices:[11.0, 12)" />
</androidPackages>
<iosPods>
<iosPod name="FBSDKCoreKit_Basics" version="~> 11.0" />
<iosPod name="FBSDKCoreKit" version="~> 11.0" />
<iosPod name="FBSDKLoginKit" version="~> 11.0" />
<iosPod name="FBSDKShareKit" version="~> 11.0" />
<iosPod name="FBSDKGamingServicesKit" version="~> 11.0" />
</iosPods>
</dependencies>

View File

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

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 137a102f808364a0fb444bedefe2575d
timeCreated: 1561663361
licenseType: Pro
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 0
settings: {}
- first:
Editor: Editor
second:
enabled: 1
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 08462833fafe743b8bd59914b9f52696
timeCreated: 1561663359
licenseType: Pro
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 56e97142b4054564b818ddb4a996bcbf
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: 99f23b07cdda04baea08736723cf3aad
timeCreated: 1561663362
licenseType: Pro
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: cfd587f32401443d0b223aa6246fe5bc
timeCreated: 1561663364
licenseType: Pro
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 89644ab96437bb3429d31f916a4c37c7
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,32 @@
fileFormatVersion: 2
guid: c49f2b3ca212b47fc9cd8ce655177c89
timeCreated: 1561663363
licenseType: Pro
PluginImporter:
externalObjects: {}
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
- first:
Any:
second:
enabled: 1
settings: {}
- first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
- first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d215dd8cabdd0444795d89904078812a
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,154 @@
fileFormatVersion: 2
guid: 516664901472b44fe83b720b195b5b60
timeCreated: 1561663362
licenseType: Pro
PluginImporter:
serializedVersion: 2
iconMap: {}
executionOrder: {}
isPreloaded: 0
isOverridable: 0
platformData:
data:
first:
'': Any
second:
enabled: 0
settings:
Exclude Android: 1
Exclude Editor: 1
Exclude Linux: 1
Exclude Linux64: 1
Exclude LinuxUniversal: 1
Exclude OSXIntel: 1
Exclude OSXIntel64: 1
Exclude OSXUniversal: 1
Exclude WebGL: 1
Exclude Win: 1
Exclude Win64: 1
Exclude iOS: 0
Exclude tvOS: 1
data:
first:
'': Editor
second:
enabled: 0
settings:
CPU: AnyCPU
OS: AnyOS
data:
first:
Android: Android
second:
enabled: 0
settings:
CPU: ARMv7
data:
first:
Any:
second:
enabled: 0
settings: {}
data:
first:
Editor: Editor
second:
enabled: 0
settings:
DefaultValueInitialized: true
data:
first:
Facebook: Win
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Facebook: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: Linux
second:
enabled: 0
settings:
CPU: x86
data:
first:
Standalone: Linux64
second:
enabled: 0
settings:
CPU: x86_64
data:
first:
Standalone: LinuxUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: OSXIntel
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXIntel64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: OSXUniversal
second:
enabled: 0
settings:
CPU: None
data:
first:
Standalone: Win
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Standalone: Win64
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
Windows Store Apps: WindowsStoreApps
second:
enabled: 0
settings:
CPU: AnyCPU
data:
first:
iPhone: iOS
second:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
data:
first:
tvOS: tvOS
second:
enabled: 0
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 9ee89b335532a5f488b376b06860b7de
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e3fef18aa44be6f468bc58c1256eb010
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 204ee537bef79284ca9b2f4b9aa6d3da
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,35 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
// An internal header for declaring interfaces for internal methods in the FacebookSDK
// These are INTERNAL APIs that can change without warning and should not be used directly.
#import <Foundation/Foundation.h>
@interface FBSDKSettings(UnityInternal)
+ (NSString *)userAgentSuffix;
+ (void)setUserAgentSuffix:(NSString *)suffix;
@end
@interface FBSDKShareLinkContent (UnityInternal)
// Deprecated parameters for Feed Dialog - for usage with Unity only.
@property (nonatomic, copy) NSDictionary *feedParameters;
@end

View File

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: 66952bdb75cae4c348f3d0521da59bfd
timeCreated: 1435164989
licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: x86
Linux64:
enabled: 0
settings:
CPU: x86_64
OSXIntel:
enabled: 0
settings:
CPU: AnyCPU
OSXIntel64:
enabled: 0
settings:
CPU: AnyCPU
SamsungTV:
enabled: 0
settings:
STV_MODEL: STANDARD_13
Win:
enabled: 0
settings:
CPU: AnyCPU
Win64:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,44 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <UIKit/UIKit.h>
#import "AppDelegateListener.h"
//if we are on a version of unity that has the version number defined use it, otherwise we have added it ourselves in the post build step
#if HAS_UNITY_VERSION_DEF
#include "UnityTrampolineConfigure.h"
#endif
@interface FBUnityInterface : NSObject <AppDelegateListener>
{
//If you make changes in here make the same changes in Assets/Facebook/Scripts/NativeDialogModes.cs
enum ShareDialogMode
{
AUTOMATIC = 0,
NATIVE = 1,
WEB = 2,
FEED = 3,
};
}
@property (assign, nonatomic) BOOL useFrictionlessRequests;
@property (nonatomic) ShareDialogMode shareDialogMode;
+ (FBUnityInterface *)sharedInstance;
@end

View File

@ -0,0 +1,57 @@
fileFormatVersion: 2
guid: 511e95bcdad89425999ccbb3e315246a
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: x86
Linux64:
enabled: 0
settings:
CPU: x86_64
OSXIntel:
enabled: 0
settings:
CPU: AnyCPU
OSXIntel64:
enabled: 0
settings:
CPU: AnyCPU
SamsungTV:
enabled: 0
settings:
STV_MODEL: STANDARD_13
Win:
enabled: 0
settings:
CPU: AnyCPU
Win64:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,803 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include "FBUnityInterface.h"
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import <FBSDKLoginKit/FBSDKLoginKit.h>
#import <FBSDKShareKit/FBSDKShareKit.h>
#import <FBSDKGamingServicesKit/FBSDKGamingServicesKit.h>
#import <Foundation/NSJSONSerialization.h>
#include "FBUnitySDKDelegate.h"
#include "FBUnityUtility.h"
#include "FBSDK+Internal.h"
@interface FBUnityInterface()
@property (nonatomic, copy) NSString *openURLString;
@end
@implementation FBUnityInterface
#pragma mark Object Initialization
+ (FBUnityInterface *)sharedInstance
{
static dispatch_once_t pred;
static FBUnityInterface *shared = nil;
dispatch_once(&pred, ^{
shared = [[FBUnityInterface alloc] init];
shared.shareDialogMode = ShareDialogMode::AUTOMATIC;
});
return shared;
}
+ (void)load
{
UnityRegisterAppDelegateListener([FBUnityInterface sharedInstance]);
}
#pragma mark - App (Delegate) Lifecycle
// didBecomeActive: and onOpenURL: are called by Unity's AppController
// because we implement <AppDelegateListener> and registered via UnityRegisterAppDelegateListener(...) above.
- (void)didFinishLaunching:(NSNotification *)notification
{
[[FBSDKApplicationDelegate sharedInstance] application:[UIApplication sharedApplication]
didFinishLaunchingWithOptions:notification.userInfo];
}
- (void)didBecomeActive:(NSNotification *)notification
{
}
- (void)onOpenURL:(NSNotification *)notification
{
NSURL *url = notification.userInfo[@"url"];
BOOL isHandledByFBSDK = [[FBSDKApplicationDelegate sharedInstance] application:[UIApplication sharedApplication]
openURL:url
sourceApplication:notification.userInfo[@"sourceApplication"]
annotation:notification.userInfo[@"annotation"]];
if (!isHandledByFBSDK) {
[FBUnityInterface sharedInstance].openURLString = [url absoluteString];
}
}
#pragma mark - Implementation
- (void)configureAppId:(const char *)appId
frictionlessRequests:(bool)frictionlessRequests
urlSuffix:(const char *)urlSuffix
{
self.useFrictionlessRequests = frictionlessRequests;
if(appId) {
[FBSDKSettings setAppID:[FBUnityUtility stringFromCString:appId]];
}
if(urlSuffix && strlen(urlSuffix) > 0) {
[FBSDKSettings setAppURLSchemeSuffix:[FBUnityUtility stringFromCString:urlSuffix]];
}
NSDictionary *userData = [self getAccessTokenUserData] ?: @{};
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnInitComplete userData:userData requestId:0];
}
- (void)logInWithPublishPermissions:(int) requestId
scope:(const char *)scope
{
[self startLogin:requestId scope:scope isPublishPermLogin:YES];
}
- (void)logInWithReadPermissions:(int) requestId
scope:(const char *)scope
{
[self startLogin:requestId scope:scope isPublishPermLogin:NO];
}
- (void)startLogin:(int) requestId
scope:(const char *)scope
isPublishPermLogin:(BOOL)isPublishPermLogin
{
NSString *scopeStr = [FBUnityUtility stringFromCString:scope];
NSArray *permissions = nil;
if(scope && strlen(scope) > 0) {
permissions = [scopeStr componentsSeparatedByString:@","];
}
void (^loginHandler)(FBSDKLoginManagerLoginResult *,NSError *) = ^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnLoginComplete error:error requestId:requestId];
return;
} else if (result.isCancelled) {
[FBUnityUtility sendCancelToUnity:FBUnityMessageName_OnLoginComplete requestId:requestId];
return;
}
if ([self tryCompleteLoginWithRequestId:requestId]) {
return;
} else {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnLoginComplete errorMessage:@"Unknown login error" requestId:requestId];
}
};
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithPermissions:permissions
fromViewController:nil
handler:loginHandler];
}
- (void)loginWithTrackingPreference:(int)requestId
scope:(const char *)scope
tracking:(const char *)tracking
nonce:(const char *)nonce
{
NSString *scopeStr = [FBUnityUtility stringFromCString:scope];
NSArray *permissions = nil;
if(scope && strlen(scope) > 0) {
permissions = [scopeStr componentsSeparatedByString:@","];
}
NSString *trackingStr = [FBUnityUtility stringFromCString:tracking];
NSString *nonceStr = nil;
if (nonce) {
nonceStr = [FBUnityUtility stringFromCString:nonce];
}
FBSDKLoginConfiguration *config;
if (nonce) {
config = [[FBSDKLoginConfiguration alloc] initWithPermissions:permissions tracking:([trackingStr isEqualToString:@"enabled"] ? FBSDKLoginTrackingEnabled : FBSDKLoginTrackingLimited) nonce:nonceStr];
} else {
config = [[FBSDKLoginConfiguration alloc] initWithPermissions:permissions tracking:([trackingStr isEqualToString:@"enabled"] ? FBSDKLoginTrackingEnabled : FBSDKLoginTrackingLimited)];
}
void (^loginHandler)(FBSDKLoginManagerLoginResult *,NSError *) = ^(FBSDKLoginManagerLoginResult *result, NSError *error) {
if (error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnLoginComplete error:error requestId:requestId];
return;
} else if (result.isCancelled) {
[FBUnityUtility sendCancelToUnity:FBUnityMessageName_OnLoginComplete requestId:requestId];
return;
}
if ([self tryCompleteLoginWithRequestId:requestId]) {
return;
} else {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnLoginComplete errorMessage:@"Unknown login error" requestId:requestId];
}
};
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInFromViewController:nil configuration:config completion:loginHandler];
}
- (void)logOut
{
FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logOut];
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnLogoutComplete userData:@{} requestId:0];
}
- (void)appRequestWithRequestId:(int)requestId
message:(const char *)message
actionType:(const char *)actionType
objectId:(const char *)objectId
to:(const char **)to
toLength:(int)toLength
filters:(const char *)filters
data:(const char *)data
title:(const char *)title
{
FBSDKGameRequestContent *content = [[FBSDKGameRequestContent alloc] init];
content.message = [FBUnityUtility stringFromCString:message];
content.actionType = [FBUnityUtility gameRequestActionTypeFromString:[FBUnityUtility stringFromCString:actionType]];
content.objectID = [FBUnityUtility stringFromCString:objectId];
if(to && toLength) {
NSMutableArray *toArray = [NSMutableArray array];
for(int i = 0; i < toLength; i++) {
[toArray addObject:[FBUnityUtility stringFromCString:to[i]]];
}
content.recipients = toArray;
}
content.filters = [FBUnityUtility gameRequestFilterFromString:[FBUnityUtility stringFromCString:filters]];
content.data = [FBUnityUtility stringFromCString:data];
content.title = [FBUnityUtility stringFromCString:title];
FBUnitySDKDelegate *delegate = [FBUnitySDKDelegate instanceWithRequestID:requestId];
NSError *error;
FBSDKGameRequestDialog *dialog = [[FBSDKGameRequestDialog alloc] init];
dialog.content = content;
dialog.delegate = delegate;
dialog.frictionlessRequestsEnabled = self.useFrictionlessRequests;
if (![dialog validateWithError:&error]) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnAppRequestsComplete error:error requestId:requestId];
}
if (![dialog show]) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnAppRequestsComplete errorMessage:@"Failed to show request dialog" requestId:requestId];
}
}
- (void)shareLinkWithRequestId:(int)requestId
contentURL:(const char *)contentURL
contentTitle:(const char *)contentTitle
contentDescription:(const char *)contentDescription
photoURL:(const char *)photoURL
{
FBSDKShareLinkContent *linkContent = [[FBSDKShareLinkContent alloc] init];
NSString *contentUrlStr = [FBUnityUtility stringFromCString:contentURL];
if (contentUrlStr) {
linkContent.contentURL = [NSURL URLWithString:contentUrlStr];
}
[self shareContentWithRequestId:requestId
shareContent:linkContent
dialogMode:[self getDialogMode]];
}
- (void)shareFeedWithRequestId:(int)requestId
toId:(const char *)toID
link:(const char *)link
linkName:(const char *)linkName
linkCaption:(const char *)linkCaption
linkDescription:(const char *)linkDescription
picture:(const char *)picture
mediaSource:(const char *)mediaSource
{
FBSDKShareLinkContent *linkContent = [[FBSDKShareLinkContent alloc] init];
NSString *contentUrlStr = [FBUnityUtility stringFromCString:link];
if (contentUrlStr) {
linkContent.contentURL = [NSURL URLWithString:contentUrlStr];
}
NSMutableDictionary *feedParameters = [[NSMutableDictionary alloc] init];
NSString *toStr = [FBUnityUtility stringFromCString:toID];
if (toStr) {
[feedParameters setObject:toStr forKey:@"to"];
}
NSString *captionStr = [FBUnityUtility stringFromCString:linkCaption];
if (captionStr) {
[feedParameters setObject:captionStr forKey:@"caption"];
}
NSString *sourceStr = [FBUnityUtility stringFromCString:mediaSource];
if (sourceStr) {
[feedParameters setObject:sourceStr forKey:@"source"];
}
[linkContent addParameters:feedParameters bridgeOptions:FBSDKShareBridgeOptionsDefault];
[self shareContentWithRequestId:requestId
shareContent:linkContent
dialogMode:FBSDKShareDialogModeFeedWeb];
}
- (void)shareContentWithRequestId:(int)requestId
shareContent:(FBSDKShareLinkContent *)linkContent
dialogMode:(FBSDKShareDialogMode)dialogMode
{
FBSDKShareDialog *dialog = [[FBSDKShareDialog alloc] init];
dialog.shareContent = linkContent;
dialog.mode = dialogMode;
FBUnitySDKDelegate *delegate = [FBUnitySDKDelegate instanceWithRequestID:requestId];
dialog.delegate = delegate;
NSError *error;
if (![dialog validateWithError:&error]) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnShareLinkComplete error:error requestId:requestId];
}
if (![dialog show]) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnShareLinkComplete errorMessage:@"Failed to show share dialog" requestId:requestId];
}
}
- (FBSDKShareDialogMode)getDialogMode
{
switch (self.shareDialogMode) {
case ShareDialogMode::AUTOMATIC:
return FBSDKShareDialogModeAutomatic;
case ShareDialogMode::NATIVE:
return FBSDKShareDialogModeNative;
case ShareDialogMode::WEB:
return FBSDKShareDialogModeWeb;
case ShareDialogMode::FEED:
return FBSDKShareDialogModeFeedWeb;
default:
NSLog(@"Unexpected dialog mode: %@", [NSNumber numberWithInt:self.shareDialogMode]);
return FBSDKShareDialogModeAutomatic;
}
}
- (BOOL)tryCompleteLoginWithRequestId:(int) requestId
{
NSMutableDictionary *userData = [[NSMutableDictionary alloc] init];
NSDictionary *accessTokenUserData = [self getAccessTokenUserData];
NSDictionary *authenticationTokenUserData = [self getAuthenticationTokenUserData];
if (accessTokenUserData) {
[userData addEntriesFromDictionary:accessTokenUserData];
}
if (authenticationTokenUserData) {
[userData addEntriesFromDictionary:authenticationTokenUserData];
}
if (userData) {
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnLoginComplete
userData:[userData copy]
requestId:requestId];
return YES;
} else {
return NO;
}
}
- (NSDictionary *)getAccessTokenUserData
{
FBSDKAccessToken *token = [FBSDKAccessToken currentAccessToken];
if (token) {
// Old v3 sdk tokens don't always contain a UserID. If the user ID is null
// treat the token as bad and clear it. These values are all required
// on c# side for initlizing a token.
NSDictionary *userData = [FBUnityUtility getUserDataFromAccessToken:token];
if (userData) {
return userData;
} else {
// The token is missing a required value. Clear the token
[[[FBSDKLoginManager alloc] init] logOut];
}
}
return nil;
}
- (NSDictionary *)getAuthenticationTokenUserData
{
FBSDKAuthenticationToken *token = [FBSDKAuthenticationToken currentAuthenticationToken];
if (token.tokenString && token.nonce) {
return @{
@"auth_token_string": token.tokenString,
@"auth_nonce": token.nonce
};
}
return nil;
}
@end
#pragma mark - Actual Unity C# interface (extern C)
extern "C" {
void IOSFBSendViewHierarchy(const char *_tree )
{
Class FBUnityUtility = NSClassFromString(@"FBSDKCodelessIndexer");
[FBUnityUtility performSelector:NSSelectorFromString(@"uploadIndexing:")
withObject:[NSString stringWithUTF8String:_tree]];
}
void IOSFBInit(const char *_appId, bool _frictionlessRequests, const char *_urlSuffix, const char *_userAgentSuffix)
{
// Set the user agent before calling init to ensure that calls made during
// init use the user agent suffix.
[FBSDKSettings setUserAgentSuffix:[FBUnityUtility stringFromCString:_userAgentSuffix]];
[[FBUnityInterface sharedInstance] configureAppId:_appId
frictionlessRequests:_frictionlessRequests
urlSuffix:_urlSuffix];
[FBSDKAppEvents setIsUnityInit:true];
[FBSDKAppEvents sendEventBindingsToUnity];
}
void IOSFBEnableProfileUpdatesOnAccessTokenChange(bool enable)
{
[FBSDKProfile enableUpdatesOnAccessTokenChange:enable];
}
void IOSFBLoginWithTrackingPreference(int requestId, const char *scope, const char *tracking, const char *nonce)
{
[[FBUnityInterface sharedInstance] loginWithTrackingPreference:requestId scope:scope
tracking:tracking
nonce:nonce];
}
void IOSFBLogInWithReadPermissions(int requestId,
const char *scope)
{
[[FBUnityInterface sharedInstance] logInWithReadPermissions:requestId scope:scope];
}
void IOSFBLogInWithPublishPermissions(int requestId,
const char *scope)
{
[[FBUnityInterface sharedInstance] logInWithPublishPermissions:requestId scope:scope];
}
void IOSFBLogOut()
{
[[FBUnityInterface sharedInstance] logOut];
}
char* IOSFBCurrentAuthenticationToken()
{
FBSDKAuthenticationToken *token = [FBSDKAuthenticationToken currentAuthenticationToken];
NSString *str = @"";
if (token.tokenString && token.nonce) {
try {
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:@{
@"auth_token_string": token.tokenString,
@"auth_nonce": token.nonce
} options:NSJSONWritingPrettyPrinted error:nil];
if (jsonData) {
str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
} catch (NSException *exception) {
NSLog(@"Fail to parse AuthenticationToken");
}
}
const char* string = [str UTF8String];
char* res = (char*)malloc(strlen(string) + 1);
strcpy(res, string);
return res;
}
char* IOSFBCurrentProfile()
{
FBSDKProfile *profile = [FBSDKProfile currentProfile];
NSString *str = @"";
NSMutableDictionary<NSString *, id> *data = [NSMutableDictionary new];
if (profile.userID) {
data[@"userID"] = profile.userID;
}
if (profile.firstName) {
data[@"firstName"] = profile.firstName;
}
if (profile.middleName) {
data[@"middleName"] = profile.middleName;
}
if (profile.lastName) {
data[@"lastName"] = profile.lastName;
}
if (profile.name) {
data[@"name"] = profile.name;
}
if (profile.email) {
data[@"email"] = profile.email;
}
if (profile.imageURL) {
data[@"imageURL"] = profile.imageURL.absoluteString;
}
if (profile.linkURL) {
data[@"linkURL"] = profile.linkURL.absoluteString;
}
if (profile.friendIDs) {
data[@"friendIDs"] = [profile.friendIDs componentsJoinedByString:@","];
}
if (profile.birthday) {
data[@"birthday"] = [NSString stringWithFormat:@"%@", @((time_t)[profile.birthday timeIntervalSince1970])];
}
if (profile.ageRange) {
if (profile.ageRange.min) {
data[@"ageMin"] = profile.ageRange.min.stringValue;
}
if (profile.ageRange.max) {
data[@"ageMax"] = profile.ageRange.max.stringValue;
}
}
if (profile.hometown) {
data[@"hometown_id"] = profile.hometown.id;
data[@"hometown_name"] = profile.hometown.name;
}
if (profile.location) {
data[@"location_id"] = profile.location.id;
data[@"location_name"] = profile.location.name;
}
if (profile.gender) {
data[@"gender"] = profile.gender;
}
try {
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data options:NSJSONWritingPrettyPrinted error:nil];
if (jsonData) {
str = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
}
} catch (NSException *exception) {
NSLog(@"Fail to parse Profile");
}
const char* string = [str UTF8String];
char* res = (char*)malloc(strlen(string) + 1);
strcpy(res, string);
return res;
}
void IOSFBSetPushNotificationsDeviceTokenString(const char *token)
{
[FBSDKAppEvents setPushNotificationsDeviceTokenString:[FBUnityUtility stringFromCString:token]];
}
void IOSFBSetShareDialogMode(int mode)
{
[FBUnityInterface sharedInstance].shareDialogMode = static_cast<ShareDialogMode>(mode);
}
void IOSFBAppRequest(int requestId,
const char *message,
const char *actionType,
const char *objectId,
const char **to,
int toLength,
const char *filters,
const char **excludeIds, //not supported on mobile
int excludeIdsLength, //not supported on mobile
bool hasMaxRecipients, //not supported on mobile
int maxRecipients, //not supported on mobile
const char *data,
const char *title)
{
[[FBUnityInterface sharedInstance] appRequestWithRequestId: requestId
message: message
actionType: actionType
objectId: objectId
to: to
toLength: toLength
filters: filters
data: data
title: title];
}
void IOSFBGetAppLink(int requestId)
{
NSURL *url = [NSURL URLWithString:[FBUnityInterface sharedInstance].openURLString];
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnGetAppLinkComplete
userData:[FBUnityUtility appLinkDataFromUrl:url]
requestId:requestId];
[FBUnityInterface sharedInstance].openURLString = nil;
}
void IOSFBShareLink(int requestId,
const char *contentURL,
const char *contentTitle,
const char *contentDescription,
const char *photoURL)
{
[[FBUnityInterface sharedInstance] shareLinkWithRequestId:requestId
contentURL:contentURL
contentTitle:contentTitle
contentDescription:contentDescription
photoURL:photoURL];
}
void IOSFBFeedShare(int requestId,
const char *toId,
const char *link,
const char *linkName,
const char *linkCaption,
const char *linkDescription,
const char *picture,
const char *mediaSource)
{
[[FBUnityInterface sharedInstance] shareFeedWithRequestId:requestId
toId:toId
link:link
linkName:linkName
linkCaption:linkCaption
linkDescription:linkDescription
picture:picture
mediaSource:mediaSource];
}
void IOSFBAppEventsActivateApp()
{
[FBSDKAppEvents activateApp];
}
void IOSFBAppEventsLogEvent(const char *eventName,
double valueToSum,
int numParams,
const char **paramKeys,
const char **paramVals)
{
NSDictionary *params = [FBUnityUtility dictionaryFromKeys:paramKeys values:paramVals length:numParams];
[FBSDKAppEvents logEvent:[FBUnityUtility stringFromCString:eventName] valueToSum:valueToSum parameters:params];
}
void IOSFBAppEventsLogPurchase(double amount,
const char *currency,
int numParams,
const char **paramKeys,
const char **paramVals)
{
NSDictionary *params = [FBUnityUtility dictionaryFromKeys:paramKeys values:paramVals length:numParams];
[FBSDKAppEvents logPurchase:amount currency:[FBUnityUtility stringFromCString:currency] parameters:params];
}
void IOSFBAppEventsSetLimitEventUsage(BOOL limitEventUsage)
{
[FBSDKSettings setLimitEventAndDataUsage:limitEventUsage];
}
void IOSFBAutoLogAppEventsEnabled(BOOL autoLogAppEventsEnabledID)
{
[FBSDKSettings setAutoLogAppEventsEnabled:autoLogAppEventsEnabledID];
}
void IOSFBAdvertiserIDCollectionEnabled(BOOL advertiserIDCollectionEnabledID)
{
[FBSDKSettings setAdvertiserIDCollectionEnabled:advertiserIDCollectionEnabledID];
}
BOOL IOSFBAdvertiserTrackingEnabled(BOOL advertiserTrackingEnabled)
{
return [FBSDKSettings setAdvertiserTrackingEnabled:advertiserTrackingEnabled];
}
char* IOSFBSdkVersion()
{
const char* string = [[FBSDKSettings sdkVersion] UTF8String];
char* res = (char*)malloc(strlen(string) + 1);
strcpy(res, string);
return res;
}
void IOSFBSetUserID(const char *userID)
{
[FBSDKAppEvents setUserID:[FBUnityUtility stringFromCString:userID]];
}
void IOSFBOpenGamingServicesFriendFinder(int requestId)
{
[FBSDKFriendFinderDialog
launchFriendFinderDialogWithCompletionHandler:^(BOOL success, NSError * _Nullable error) {
if (!success || error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnFriendFinderComplete error:error requestId:requestId];
} else {
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnFriendFinderComplete
userData:NULL
requestId:requestId];
}
}];
}
void IOSFBSetDataProcessingOptions(
const char** options,
int numOptions,
int country,
int state) {
NSMutableArray<NSString*>* array = [[NSMutableArray alloc] init];
for (int i = 0; i < numOptions; i++) {
NSString* option = [FBUnityUtility stringFromCString:options[i]];
if (option) {
[array addObject:option];
}
}
[FBSDKSettings setDataProcessingOptions:array country:country state:state];
}
void IOSFBUploadImageToMediaLibrary(int requestId,
const char *caption,
const char *imageUri,
bool shouldLaunchMediaDialog)
{
NSString *captionString = [FBUnityUtility stringFromCString:caption];
NSString *imageUriString = [FBUnityUtility stringFromCString:imageUri];
UIImage *image = [UIImage imageWithContentsOfFile:imageUriString];
FBSDKGamingImageUploaderConfiguration *config =
[[FBSDKGamingImageUploaderConfiguration alloc]
initWithImage:image
caption:captionString
shouldLaunchMediaDialog:shouldLaunchMediaDialog ? YES: NO];
[FBSDKGamingImageUploader
uploadImageWithConfiguration:config
andResultCompletionHandler:^(BOOL success, id result, NSError * _Nullable error) {
if (!success || error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnUploadImageToMediaLibraryComplete
error:error
requestId:requestId];
} else {
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnUploadImageToMediaLibraryComplete
userData:@{@"id":result[@"id"]}
requestId:requestId];
}
}];
}
void IOSFBUploadVideoToMediaLibrary(int requestId,
const char *caption,
const char *videoUri)
{
NSString *captionString = [FBUnityUtility stringFromCString:caption];
NSString *videoUriString = [FBUnityUtility stringFromCString:videoUri];
NSURL *videoURL = [NSURL fileURLWithPath:videoUriString];
FBSDKGamingVideoUploaderConfiguration *config =
[[FBSDKGamingVideoUploaderConfiguration alloc]
initWithVideoURL:videoURL
caption:captionString];
[FBSDKGamingVideoUploader
uploadVideoWithConfiguration:config
andResultCompletionHandler:^(BOOL success, id result, NSError * _Nullable error) {
if (!success || error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnUploadVideoToMediaLibraryComplete
error:error
requestId:requestId];
} else {
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnUploadVideoToMediaLibraryComplete
userData:@{@"id":result[@"id"]}
requestId:requestId];
}
}];
}
char* IOSFBGetUserID()
{
NSString *userID = [FBSDKAppEvents userID];
if (!userID) {
return NULL;
}
const char* string = [userID UTF8String];
char* res = (char*)malloc(strlen(string) + 1);
strcpy(res, string);
return res;
}
void IOSFBUpdateUserProperties(int numParams,
const char **paramKeys,
const char **paramVals)
{ }
void IOSFBFetchDeferredAppLink(int requestId)
{
[FBSDKAppLinkUtility fetchDeferredAppLink:^(NSURL *url, NSError *error) {
if (error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnFetchDeferredAppLinkComplete error:error requestId:requestId];
return;
}
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnFetchDeferredAppLinkComplete
userData:[FBUnityUtility appLinkDataFromUrl:url]
requestId:requestId];
}];
}
void IOSFBRefreshCurrentAccessToken(int requestId)
{
[FBSDKAccessToken refreshCurrentAccessToken:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (error) {
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnRefreshCurrentAccessTokenComplete error:error requestId:requestId];
return;
}
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnRefreshCurrentAccessTokenComplete
userData:[FBUnityUtility getUserDataFromAccessToken:[FBSDKAccessToken currentAccessToken]]
requestId:requestId];
}];
}
}

View File

@ -0,0 +1,57 @@
fileFormatVersion: 2
guid: 4c29c5d59509848c4bc24c13ac976932
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: x86
Linux64:
enabled: 0
settings:
CPU: x86_64
OSXIntel:
enabled: 0
settings:
CPU: AnyCPU
OSXIntel64:
enabled: 0
settings:
CPU: AnyCPU
SamsungTV:
enabled: 0
settings:
STV_MODEL: STANDARD_13
Win:
enabled: 0
settings:
CPU: AnyCPU
Win64:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,49 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import <FBSDKShareKit/FBSDKShareKit.h>
extern NSString *const FBUnityMessageName_OnAppRequestsComplete;
extern NSString *const FBUnityMessageName_OnFriendFinderComplete;
extern NSString *const FBUnityMessageName_OnGetAppLinkComplete;
extern NSString *const FBUnityMessageName_OnGroupCreateComplete;
extern NSString *const FBUnityMessageName_OnGroupJoinComplete;
extern NSString *const FBUnityMessageName_OnInitComplete;
extern NSString *const FBUnityMessageName_OnLoginComplete;
extern NSString *const FBUnityMessageName_OnLogoutComplete;
extern NSString *const FBUnityMessageName_OnShareLinkComplete;
extern NSString *const FBUnityMessageName_OnFetchDeferredAppLinkComplete;
extern NSString *const FBUnityMessageName_OnRefreshCurrentAccessTokenComplete;
extern NSString *const FBUnityMessageName_OnUploadImageToMediaLibraryComplete;
extern NSString *const FBUnityMessageName_OnUploadVideoToMediaLibraryComplete;
/*!
@abstract A helper class that implements various FBSDK delegates in order to send
messages back to Unity.
*/
@interface FBUnitySDKDelegate : NSObject<
FBSDKGameRequestDialogDelegate,
FBSDKSharingDelegate>
/*
@abstract returns a self retaining instance that is released once it receives a
delegate message from FBSDK.
*/
+ (instancetype)instanceWithRequestID:(int)requestID;
@end

View File

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: 7461bcc2e2c714a03a3f60d68ec79369
timeCreated: 1435007350
licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: x86
Linux64:
enabled: 0
settings:
CPU: x86_64
OSXIntel:
enabled: 0
settings:
CPU: AnyCPU
OSXIntel64:
enabled: 0
settings:
CPU: AnyCPU
SamsungTV:
enabled: 0
settings:
STV_MODEL: STANDARD_13
Win:
enabled: 0
settings:
CPU: AnyCPU
Win64:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,110 @@
// Copyright (c) 2014-present, Facebook, Inc. All rights reserved.
//
// You are hereby granted a non-exclusive, worldwide, royalty-free license to use,
// copy, modify, and distribute this software in source code or binary form for use
// in connection with the web services and APIs provided by Facebook.
//
// As with any software that integrates with the Facebook platform, your use of
// this software is subject to the Facebook Developer Principles and Policies
// [http://developers.facebook.com/policy/]. This copyright notice shall be
// included in all copies or substantial portions of the software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#import "FBUnitySDKDelegate.h"
#import "FBUnityUtility.h"
NSString *const FBUnityMessageName_OnAppRequestsComplete = @"OnAppRequestsComplete";
NSString *const FBUnityMessageName_OnGetAppLinkComplete = @"OnGetAppLinkComplete";
NSString *const FBUnityMessageName_OnFriendFinderComplete = @"OnFriendFinderComplete";
NSString *const FBUnityMessageName_OnGroupCreateComplete = @"OnGroupCreateComplete";
NSString *const FBUnityMessageName_OnGroupJoinComplete = @"OnGroupJoinComplete";
NSString *const FBUnityMessageName_OnInitComplete = @"OnInitComplete";
NSString *const FBUnityMessageName_OnLoginComplete = @"OnLoginComplete";
NSString *const FBUnityMessageName_OnLogoutComplete = @"OnLogoutComplete";
NSString *const FBUnityMessageName_OnShareLinkComplete = @"OnShareLinkComplete";
NSString *const FBUnityMessageName_OnFetchDeferredAppLinkComplete = @"OnFetchDeferredAppLinkComplete";
NSString *const FBUnityMessageName_OnRefreshCurrentAccessTokenComplete = @"OnRefreshCurrentAccessTokenComplete";
NSString *const FBUnityMessageName_OnUploadImageToMediaLibraryComplete = @"OnUploadImageToMediaLibraryComplete";
NSString *const FBUnityMessageName_OnUploadVideoToMediaLibraryComplete = @"OnUploadVideoToMediaLibraryComplete";
static NSMutableArray *g_instances;
@implementation FBUnitySDKDelegate {
int _requestID;
}
+ (void)initialize
{
if (self == [FBUnitySDKDelegate class]) {
g_instances = [NSMutableArray array];
}
}
+ (instancetype)instanceWithRequestID:(int)requestID
{
FBUnitySDKDelegate *instance = [[FBUnitySDKDelegate alloc] init];
instance->_requestID = requestID;
[g_instances addObject:instance];
return instance;
}
#pragma mark - Private helpers
- (void)complete
{
[g_instances removeObject:self];
}
#pragma mark - GameRequestDelegate
- (void)gameRequestDialog:(FBSDKGameRequestDialog *)gameRequestDialog didCompleteWithResults:(NSDictionary *)results
{
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnAppRequestsComplete userData:results requestId:_requestID];
[self complete];
}
- (void)gameRequestDialog:(FBSDKGameRequestDialog *)gameRequestDialog didFailWithError:(NSError *)error
{
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnAppRequestsComplete error:error requestId:_requestID];
[self complete];
}
- (void)gameRequestDialogDidCancel:(FBSDKGameRequestDialog *)gameRequestDialog
{
[FBUnityUtility sendCancelToUnity:FBUnityMessageName_OnAppRequestsComplete requestId:_requestID];
[self complete];
}
#pragma mark - FBSDKSharingDelegate
- (void)sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results
{
if (results.count == 0) {
// We no longer always send back a postId. In cases where the response is empty,
// stuff in a didComplete so that Unity doesn't treat it as a malformed response.
results = @{ @"didComplete" : @"1" };
}
[FBUnityUtility sendMessageToUnity:FBUnityMessageName_OnShareLinkComplete userData:results requestId:_requestID];
[self complete];
}
- (void)sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error
{
[FBUnityUtility sendErrorToUnity:FBUnityMessageName_OnShareLinkComplete error:error requestId:_requestID];
[self complete];
}
- (void)sharerDidCancel:(id<FBSDKSharing>)sharer
{
[FBUnityUtility sendCancelToUnity:FBUnityMessageName_OnShareLinkComplete requestId:_requestID];
[self complete];
}
@end

View File

@ -0,0 +1,59 @@
fileFormatVersion: 2
guid: fbc51482e3ca248329707d61959f9d9d
timeCreated: 1435010266
licenseType: Pro
PluginImporter:
serializedVersion: 1
iconMap: {}
executionOrder: {}
isPreloaded: 0
platformData:
Android:
enabled: 0
settings:
CPU: AnyCPU
Any:
enabled: 0
settings: {}
Editor:
enabled: 1
settings:
CPU: AnyCPU
DefaultValueInitialized: true
OS: AnyOS
Linux:
enabled: 0
settings:
CPU: x86
Linux64:
enabled: 0
settings:
CPU: x86_64
OSXIntel:
enabled: 0
settings:
CPU: AnyCPU
OSXIntel64:
enabled: 0
settings:
CPU: AnyCPU
SamsungTV:
enabled: 0
settings:
STV_MODEL: STANDARD_13
Win:
enabled: 0
settings:
CPU: AnyCPU
Win64:
enabled: 0
settings:
CPU: AnyCPU
iOS:
enabled: 1
settings:
CompileFlags:
FrameworkDependencies:
userData:
assetBundleName:
assetBundleVariant:

Some files were not shown because too many files have changed in this diff Show More