├── .gitattributes ├── .gitignore ├── Assets ├── Plugins.meta ├── Plugins │ ├── LitJson.dll │ └── LitJson.dll.meta ├── Repo.meta ├── Repo │ ├── Audio.meta │ ├── Character.meta │ ├── Enemy.meta │ ├── Environment.meta │ ├── Environment │ │ ├── Skyboxes.meta │ │ ├── Skyboxes │ │ │ ├── Sunny Skybox.mat │ │ │ ├── Sunny Skybox.mat.meta │ │ │ ├── Sunny.meta │ │ │ └── Sunny │ │ │ │ ├── Sunny1_back.tif │ │ │ │ ├── Sunny1_back.tif.meta │ │ │ │ ├── Sunny1_down.tif │ │ │ │ ├── Sunny1_down.tif.meta │ │ │ │ ├── Sunny1_front.tif │ │ │ │ ├── Sunny1_front.tif.meta │ │ │ │ ├── Sunny1_left.tif │ │ │ │ ├── Sunny1_left.tif.meta │ │ │ │ ├── Sunny1_right.tif │ │ │ │ ├── Sunny1_right.tif.meta │ │ │ │ ├── Sunny1_up.tif │ │ │ │ └── Sunny1_up.tif.meta │ │ ├── StartScene.meta │ │ └── StartScene │ │ │ ├── DarkTile.png │ │ │ ├── DarkTile.png.meta │ │ │ ├── Plane.mat │ │ │ └── Plane.mat.meta │ ├── IncludeCG.meta │ ├── Model.meta │ ├── Particle.meta │ ├── Player.meta │ ├── Player │ │ ├── PlayerMain.meta │ │ └── PlayerMain │ │ │ ├── Animation.meta │ │ │ ├── Animation │ │ │ ├── Block.meta │ │ │ └── Block │ │ │ │ ├── Move.meta │ │ │ │ └── Move │ │ │ │ ├── BlockPeaceWalk.anim │ │ │ │ ├── BlockPeaceWalk.anim.meta │ │ │ │ ├── YukaIdle.anim │ │ │ │ └── YukaIdle.anim.meta │ │ │ ├── Block2.meta │ │ │ ├── Block2 │ │ │ ├── Block2.fbx │ │ │ ├── Block2.fbx.meta │ │ │ ├── Materials.meta │ │ │ ├── Materials │ │ │ │ ├── Body.mat │ │ │ │ ├── Body.mat.meta │ │ │ │ ├── Eye.mat │ │ │ │ ├── Eye.mat.meta │ │ │ │ ├── Eye2.mat │ │ │ │ ├── Eye2.mat.meta │ │ │ │ ├── EyeLine.mat │ │ │ │ ├── EyeLine.mat.meta │ │ │ │ ├── Face.mat │ │ │ │ ├── Face.mat.meta │ │ │ │ ├── Hair.mat │ │ │ │ ├── Hair.mat.meta │ │ │ │ ├── Hand.mat │ │ │ │ ├── Hand.mat.meta │ │ │ │ ├── MianJu.mat │ │ │ │ ├── MianJu.mat.meta │ │ │ │ ├── WeiJin.mat │ │ │ │ └── WeiJin.mat.meta │ │ │ ├── Skin_face.png │ │ │ ├── Skin_face.png.meta │ │ │ ├── body.meta │ │ │ ├── body │ │ │ │ ├── DefaultMaterial_Base_Color.png │ │ │ │ ├── DefaultMaterial_Base_Color.png.meta │ │ │ │ ├── DefaultMaterial_Height.png │ │ │ │ ├── DefaultMaterial_Height.png.meta │ │ │ │ ├── DefaultMaterial_Mixed_AO.png │ │ │ │ ├── DefaultMaterial_Mixed_AO.png.meta │ │ │ │ ├── DefaultMaterial_Normal_DirectX.png │ │ │ │ └── DefaultMaterial_Normal_DirectX.png.meta │ │ │ ├── eyeL_p.tga │ │ │ ├── eyeL_p.tga.meta │ │ │ ├── eyeline2.png │ │ │ ├── eyeline2.png.meta │ │ │ ├── hair_black.png │ │ │ ├── hair_black.png.meta │ │ │ ├── timg (4).jpg │ │ │ ├── timg (4).jpg.meta │ │ │ ├── weijin.tga │ │ │ └── weijin.tga.meta │ │ │ ├── MaxFriction.physicMaterial │ │ │ ├── MaxFriction.physicMaterial.meta │ │ │ ├── PlayerMain.controller │ │ │ ├── PlayerMain.controller.meta │ │ │ ├── Textures.meta │ │ │ ├── Textures │ │ │ ├── FO_CLOTH1.tga │ │ │ ├── FO_CLOTH1.tga.meta │ │ │ ├── FO_RIM1.tga │ │ │ ├── FO_RIM1.tga.meta │ │ │ ├── FO_SKIN1.tga │ │ │ └── FO_SKIN1.tga.meta │ │ │ ├── ZeroFriction.physicMaterial │ │ │ └── ZeroFriction.physicMaterial.meta │ ├── Prefab.meta │ ├── Prefab │ │ ├── Environment.prefab │ │ ├── Environment.prefab.meta │ │ ├── Game Loop.prefab │ │ ├── Game Loop.prefab.meta │ │ ├── LevelCamera.prefab │ │ ├── LevelCamera.prefab.meta │ │ ├── Light.prefab │ │ └── Light.prefab.meta │ └── UI.meta ├── Resources.meta ├── Resources │ ├── Canvas.prefab │ ├── Canvas.prefab.meta │ ├── Enemys.meta │ ├── Fonts.meta │ ├── Fonts │ │ ├── ARJULIAN.ttf │ │ ├── ARJULIAN.ttf.meta │ │ ├── Arial - Black.ttf │ │ ├── Arial - Black.ttf.meta │ │ ├── Arial - Bold.ttf │ │ ├── Arial - Bold.ttf.meta │ │ ├── Arial - Regular.ttf │ │ ├── Arial - Regular.ttf.meta │ │ ├── Consolas - Bold.ttf │ │ ├── Consolas - Bold.ttf.meta │ │ ├── Consolas.ttf │ │ ├── Consolas.ttf.meta │ │ ├── FZYH.ttf │ │ ├── FZYH.ttf.meta │ │ ├── MicrosoftYaHeiMini.ttf │ │ ├── MicrosoftYaHeiMini.ttf.meta │ │ ├── constan.ttf │ │ └── constan.ttf.meta │ ├── Icons.meta │ ├── Musics.meta │ ├── Musics │ │ ├── WhiteLie.mp3 │ │ └── WhiteLie.mp3.meta │ ├── Particles.meta │ ├── Players.meta │ ├── Players │ │ ├── Player.prefab │ │ └── Player.prefab.meta │ ├── UI.meta │ └── UI │ │ ├── FadeIn.prefab │ │ ├── FadeIn.prefab.meta │ │ ├── FadeInWhite.prefab │ │ ├── FadeInWhite.prefab.meta │ │ ├── FadeOut.prefab │ │ ├── FadeOut.prefab.meta │ │ ├── FadeOutWhite.prefab │ │ └── FadeOutWhite.prefab.meta ├── Save.xml ├── Save.xml.meta ├── Scenes.meta ├── Scenes │ ├── Start.unity │ └── Start.unity.meta ├── Scripts.meta ├── Scripts │ ├── Editor.meta │ ├── ProjectScript.meta │ ├── ProjectScript │ │ ├── Enemy.meta │ │ ├── Player.meta │ │ ├── Player │ │ │ ├── PlayerMain.cs │ │ │ ├── PlayerMain.cs.meta │ │ │ ├── PlayerMainMono.cs │ │ │ └── PlayerMainMono.cs.meta │ │ ├── Scene.meta │ │ ├── SceneState.meta │ │ ├── UI.meta │ │ └── UI │ │ │ ├── UIFadeIn.cs │ │ │ ├── UIFadeIn.cs.meta │ │ │ ├── UIFadeOut.cs │ │ │ └── UIFadeOut.cs.meta │ ├── SFramework.meta │ └── SFramework │ │ ├── Character.meta │ │ ├── Character │ │ ├── EnemyHurtAttr.cs │ │ ├── EnemyHurtAttr.cs.meta │ │ ├── EnemyMediator.cs │ │ ├── EnemyMediator.cs.meta │ │ ├── EnemyMgr.cs │ │ ├── EnemyMgr.cs.meta │ │ ├── ICharacter.cs │ │ ├── ICharacter.cs.meta │ │ ├── ICharacterMono.cs │ │ ├── ICharacterMono.cs.meta │ │ ├── IEnemy.cs │ │ ├── IEnemy.cs.meta │ │ ├── IEnemyMono.cs │ │ ├── IEnemyMono.cs.meta │ │ ├── INPC.cs │ │ ├── INPC.cs.meta │ │ ├── IPlayer.cs │ │ ├── IPlayer.cs.meta │ │ ├── IPlayerMono.cs │ │ ├── IPlayerMono.cs.meta │ │ ├── PlayerHurtAttr.cs │ │ ├── PlayerHurtAttr.cs.meta │ │ ├── PlayerMediator.cs │ │ ├── PlayerMediator.cs.meta │ │ ├── PlayerMgr.cs │ │ └── PlayerMgr.cs.meta │ │ ├── GameLoop.cs │ │ ├── GameLoop.cs.meta │ │ ├── GameMainProgram.cs │ │ ├── GameMainProgram.cs.meta │ │ ├── GameMgr.meta │ │ ├── GameMgr │ │ ├── AudioMgr.cs │ │ ├── AudioMgr.cs.meta │ │ ├── CoroutineMgr.cs │ │ ├── CoroutineMgr.cs.meta │ │ ├── CourseMgr.cs │ │ ├── CourseMgr.cs.meta │ │ ├── DataBaseMgr.cs │ │ ├── DataBaseMgr.cs.meta │ │ ├── DialogMgr.cs │ │ ├── DialogMgr.cs.meta │ │ ├── EventMgr.cs │ │ ├── EventMgr.cs.meta │ │ ├── FileMgr.cs │ │ ├── FileMgr.cs.meta │ │ ├── GameDataMgr.cs │ │ ├── GameDataMgr.cs.meta │ │ ├── IGameMgr.cs │ │ ├── IGameMgr.cs.meta │ │ ├── LanguageMgr.cs │ │ ├── LanguageMgr.cs.meta │ │ ├── NpcMgr.cs │ │ ├── NpcMgr.cs.meta │ │ ├── ResourcesMgr.cs │ │ ├── ResourcesMgr.cs.meta │ │ ├── SqlMgr.cs │ │ ├── SqlMgr.cs.meta │ │ ├── ThreadMgr.cs │ │ └── ThreadMgr.cs.meta │ │ ├── Item.meta │ │ ├── Item │ │ ├── IEquip.cs │ │ ├── IEquip.cs.meta │ │ ├── IItem.cs │ │ ├── IItem.cs.meta │ │ ├── IProp.cs │ │ └── IProp.cs.meta │ │ ├── MonoFunction.meta │ │ ├── MonoFunction │ │ ├── AutoCam.cs │ │ ├── AutoCam.cs.meta │ │ ├── AutoDisable.cs │ │ ├── AutoDisable.cs.meta │ │ ├── CameraCtrl.cs │ │ ├── CameraCtrl.cs.meta │ │ ├── ShakeObject.cs │ │ ├── ShakeObject.cs.meta │ │ ├── TransparentCam.cs │ │ └── TransparentCam.cs.meta │ │ ├── SceneState.meta │ │ ├── SceneState │ │ ├── ISceneState.cs │ │ ├── ISceneState.cs.meta │ │ ├── SceneStateController.cs │ │ ├── SceneStateController.cs.meta │ │ ├── StartScene.cs │ │ └── StartScene.cs.meta │ │ ├── SystemDefine.cs │ │ ├── SystemDefine.cs.meta │ │ ├── UI.meta │ │ ├── UI │ │ ├── Common.cs │ │ ├── Common.cs.meta │ │ ├── UIDialog.cs │ │ ├── UIDialog.cs.meta │ │ ├── UILoading.cs │ │ ├── UILoading.cs.meta │ │ ├── UIManager.cs │ │ ├── UIManager.cs.meta │ │ ├── UIMaskMgr.cs │ │ ├── UIMaskMgr.cs.meta │ │ ├── ViewBase.cs │ │ └── ViewBase.cs.meta │ │ ├── Utility.meta │ │ ├── Utility │ │ ├── ExtensionMethods.cs │ │ ├── ExtensionMethods.cs.meta │ │ ├── GameData.cs │ │ ├── GameData.cs.meta │ │ ├── Loom.cs │ │ ├── Loom.cs.meta │ │ ├── Singleton.cs │ │ ├── Singleton.cs.meta │ │ ├── SingletonMonoBehaviour.cs │ │ ├── SingletonMonoBehaviour.cs.meta │ │ ├── Task.cs │ │ ├── Task.cs.meta │ │ ├── UnityHelper.cs │ │ ├── UnityHelper.cs.meta │ │ ├── XmlSaver.cs │ │ └── XmlSaver.cs.meta │ │ ├── Weapon.meta │ │ └── Weapon │ │ ├── IEnemyWeapon.cs │ │ ├── IEnemyWeapon.cs.meta │ │ ├── IPlayerWeapon.cs │ │ ├── IPlayerWeapon.cs.meta │ │ ├── IWeaponMono.cs │ │ └── IWeaponMono.cs.meta ├── Setting.json ├── Setting.json.meta ├── StreamingAssets.meta └── StreamingAssets │ ├── DataBase.meta │ ├── DataBase │ ├── Dialog.json │ ├── Dialog.json.meta │ ├── EnemyEquip.json │ ├── EnemyEquip.json.meta │ ├── Equip.json │ ├── Equip.json.meta │ ├── Language_CN.json │ ├── Language_CN.json.meta │ ├── Language_EN.json │ ├── Language_EN.json.meta │ ├── Prop.json │ ├── Prop.json.meta │ ├── Tasks.json │ └── Tasks.json.meta │ ├── Log.meta │ └── Log │ ├── Game_Log.txt │ └── Game_Log.txt.meta ├── Doc ├── 1.框架总体结构.md ├── 2.资源加载子系统.md ├── 3.角色架构.md ├── 4.UI框架.md ├── 5.其他功能系统.md ├── 6.相机控制.md └── 基于Unity3D的游戏框架设计与实现-论文PPT.pptx ├── LICENSE ├── Logs └── Packages-Update.log ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset └── VFXManager.asset └── README.md /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | /[Ll]ibrary/ 2 | /[Tt]emp/ 3 | /[Oo]bj/ 4 | /[Bb]uild/ 5 | /[Bb]uilds/ 6 | /Assets/AssetStoreTools* 7 | 8 | # Visual Studio 2015 cache directory 9 | /.vs/ 10 | 11 | # Autogenerated VS/MD/Consulo solution and project files 12 | ExportedObj/ 13 | .consulo/ 14 | *.csproj 15 | *.unityproj 16 | *.sln 17 | *.suo 18 | *.tmp 19 | *.user 20 | *.userprefs 21 | *.pidb 22 | *.booproj 23 | *.svd 24 | *.pdb 25 | 26 | # Unity3D generated meta files 27 | *.pidb.meta 28 | 29 | # Unity3D Generated File On Crash Reports 30 | sysinfo.txt 31 | 32 | # Builds 33 | *.apk 34 | *.unitypackage 35 | -------------------------------------------------------------------------------- /Assets/Plugins.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0582814fa407a78419da635e42f9a1cd 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Plugins/LitJson.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Plugins/LitJson.dll -------------------------------------------------------------------------------- /Assets/Plugins/LitJson.dll.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ae6414c46d6b10469de9ebabc2549cf 3 | timeCreated: 1500631043 4 | licenseType: Pro 5 | PluginImporter: 6 | serializedVersion: 2 7 | iconMap: {} 8 | executionOrder: {} 9 | isPreloaded: 0 10 | isOverridable: 0 11 | platformData: 12 | data: 13 | first: 14 | Any: 15 | second: 16 | enabled: 1 17 | settings: {} 18 | data: 19 | first: 20 | Editor: Editor 21 | second: 22 | enabled: 0 23 | settings: 24 | DefaultValueInitialized: true 25 | data: 26 | first: 27 | Windows Store Apps: WindowsStoreApps 28 | second: 29 | enabled: 0 30 | settings: 31 | CPU: AnyCPU 32 | userData: 33 | assetBundleName: 34 | assetBundleVariant: 35 | -------------------------------------------------------------------------------- /Assets/Repo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: efbc8ec9fd9e9804db0f5336bd37185a 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Audio.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dcfd2380660ea344cb64318ca7f126c1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Character.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8f1b2de1c338f3a449bbd51e4dc981ca 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Enemy.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7fd68206c4e7b5a49b95596b5a10f474 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Environment.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3f8ae6b8deeb2b41b32a33ba316e065 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 60c2b4dd61ea4074794f4577a0def6a5 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny Skybox.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Sunny Skybox 10 | m_Shader: {fileID: 104, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BackTex: 22 | m_Texture: {fileID: 2800000, guid: 32ef381921b3f7f479831b042c113762, type: 3} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DownTex: 26 | m_Texture: {fileID: 2800000, guid: 352e5f82d7105ad408904c5f552b5fe7, type: 3} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _FrontTex: 30 | m_Texture: {fileID: 2800000, guid: 2372dd1814cb4ed47a91f8174877623e, type: 3} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _LeftTex: 34 | m_Texture: {fileID: 2800000, guid: 66ebe4da1ef67e64e8aeccb820e409d6, type: 3} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _MainTex: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _RightTex: 42 | m_Texture: {fileID: 2800000, guid: 195c271a9118d224c8562ae67cf47a66, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _UpTex: 46 | m_Texture: {fileID: 2800000, guid: 8a98ef45bc7df804d95fd945abd2c943, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | m_Floats: 50 | - _Exposure: 1 51 | - _Rotation: 0 52 | m_Colors: 53 | - _Color: {r: 1, g: 1, b: 1, a: 1} 54 | - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 55 | --- !u!1002 &2100001 56 | EditorExtensionImpl: 57 | serializedVersion: 6 58 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny Skybox.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 465bf60108d9a6b4fb86e840691dfb3c 3 | timeCreated: 1552658919 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4242eb27b93c99742a98a26b35595fe2 3 | folderAsset: yes 4 | timeCreated: 1552658892 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_back.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_back.tif -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_back.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 32ef381921b3f7f479831b042c113762 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | seamlessCubemap: 0 24 | textureFormat: -1 25 | maxTextureSize: 512 26 | textureSettings: 27 | filterMode: 1 28 | aniso: 1 29 | mipBias: 0 30 | wrapMode: 1 31 | nPOTScale: 1 32 | lightmap: 0 33 | compressionQuality: 50 34 | spriteMode: 0 35 | spriteExtrude: 1 36 | spriteMeshType: 1 37 | alignment: 0 38 | spritePivot: {x: .5, y: .5} 39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 40 | spritePixelsToUnits: 100 41 | alphaIsTransparency: 0 42 | textureType: 0 43 | buildTargetSettings: [] 44 | spriteSheet: 45 | sprites: [] 46 | spritePackingTag: 47 | userData: 48 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_down.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_down.tif -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_down.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 352e5f82d7105ad408904c5f552b5fe7 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | seamlessCubemap: 0 24 | textureFormat: -1 25 | maxTextureSize: 512 26 | textureSettings: 27 | filterMode: 1 28 | aniso: 1 29 | mipBias: 0 30 | wrapMode: 1 31 | nPOTScale: 1 32 | lightmap: 0 33 | compressionQuality: 50 34 | spriteMode: 0 35 | spriteExtrude: 1 36 | spriteMeshType: 1 37 | alignment: 0 38 | spritePivot: {x: .5, y: .5} 39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 40 | spritePixelsToUnits: 100 41 | alphaIsTransparency: 0 42 | textureType: 0 43 | buildTargetSettings: [] 44 | spriteSheet: 45 | sprites: [] 46 | spritePackingTag: 47 | userData: 48 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_front.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_front.tif -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_front.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2372dd1814cb4ed47a91f8174877623e 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | seamlessCubemap: 0 24 | textureFormat: -1 25 | maxTextureSize: 512 26 | textureSettings: 27 | filterMode: 1 28 | aniso: 1 29 | mipBias: 0 30 | wrapMode: 1 31 | nPOTScale: 1 32 | lightmap: 0 33 | compressionQuality: 50 34 | spriteMode: 0 35 | spriteExtrude: 1 36 | spriteMeshType: 1 37 | alignment: 0 38 | spritePivot: {x: .5, y: .5} 39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 40 | spritePixelsToUnits: 100 41 | alphaIsTransparency: 0 42 | textureType: 0 43 | buildTargetSettings: [] 44 | spriteSheet: 45 | sprites: [] 46 | spritePackingTag: 47 | userData: 48 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_left.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_left.tif -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_left.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66ebe4da1ef67e64e8aeccb820e409d6 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | seamlessCubemap: 0 24 | textureFormat: -1 25 | maxTextureSize: 512 26 | textureSettings: 27 | filterMode: 1 28 | aniso: 1 29 | mipBias: 0 30 | wrapMode: 1 31 | nPOTScale: 1 32 | lightmap: 0 33 | compressionQuality: 50 34 | spriteMode: 0 35 | spriteExtrude: 1 36 | spriteMeshType: 1 37 | alignment: 0 38 | spritePivot: {x: .5, y: .5} 39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 40 | spritePixelsToUnits: 100 41 | alphaIsTransparency: 0 42 | textureType: 0 43 | buildTargetSettings: [] 44 | spriteSheet: 45 | sprites: [] 46 | spritePackingTag: 47 | userData: 48 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_right.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_right.tif -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_right.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 195c271a9118d224c8562ae67cf47a66 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | seamlessCubemap: 0 24 | textureFormat: -1 25 | maxTextureSize: 512 26 | textureSettings: 27 | filterMode: 1 28 | aniso: 1 29 | mipBias: 0 30 | wrapMode: 1 31 | nPOTScale: 1 32 | lightmap: 0 33 | compressionQuality: 50 34 | spriteMode: 0 35 | spriteExtrude: 1 36 | spriteMeshType: 1 37 | alignment: 0 38 | spritePivot: {x: .5, y: .5} 39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 40 | spritePixelsToUnits: 100 41 | alphaIsTransparency: 0 42 | textureType: 0 43 | buildTargetSettings: [] 44 | spriteSheet: 45 | sprites: [] 46 | spritePackingTag: 47 | userData: 48 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_up.tif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_up.tif -------------------------------------------------------------------------------- /Assets/Repo/Environment/Skyboxes/Sunny/Sunny1_up.tif.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8a98ef45bc7df804d95fd945abd2c943 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | serializedVersion: 2 6 | mipmaps: 7 | mipMapMode: 0 8 | enableMipMap: 1 9 | linearTexture: 0 10 | correctGamma: 0 11 | fadeOut: 0 12 | borderMipMap: 0 13 | mipMapFadeDistanceStart: 1 14 | mipMapFadeDistanceEnd: 3 15 | bumpmap: 16 | convertToNormalMap: 0 17 | externalNormalMap: 0 18 | heightScale: .25 19 | normalMapFilter: 0 20 | isReadable: 0 21 | grayScaleToAlpha: 0 22 | generateCubemap: 0 23 | seamlessCubemap: 0 24 | textureFormat: -1 25 | maxTextureSize: 512 26 | textureSettings: 27 | filterMode: 1 28 | aniso: 1 29 | mipBias: 0 30 | wrapMode: 1 31 | nPOTScale: 1 32 | lightmap: 0 33 | compressionQuality: 50 34 | spriteMode: 0 35 | spriteExtrude: 1 36 | spriteMeshType: 1 37 | alignment: 0 38 | spritePivot: {x: .5, y: .5} 39 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 40 | spritePixelsToUnits: 100 41 | alphaIsTransparency: 0 42 | textureType: 0 43 | buildTargetSettings: [] 44 | spriteSheet: 45 | sprites: [] 46 | spritePackingTag: 47 | userData: 48 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/StartScene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 654a12ffe06be2e4ca3b22ba26647d71 3 | folderAsset: yes 4 | timeCreated: 1552654934 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/StartScene/DarkTile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Environment/StartScene/DarkTile.png -------------------------------------------------------------------------------- /Assets/Repo/Environment/StartScene/DarkTile.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb1b4bd7a7c44ff408e766a1e4c953c8 3 | timeCreated: 1552654972 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 1 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: 1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 0 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/StartScene/Plane.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Plane 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 50, y: 50} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 2800000, guid: eb1b4bd7a7c44ff408e766a1e4c953c8, type: 3} 43 | m_Scale: {x: 50, y: 50} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 1, b: 1, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Repo/Environment/StartScene/Plane.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 79f1942741cc53047aad74e5655b8e6d 3 | timeCreated: 1552654910 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/IncludeCG.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd0fe303524c49645af9eef109c80317 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Model.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ad3e4dbdf1612b4192576386a84c096 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Particle.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4537ab5568dcdfa43a10ccd3034cb078 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bf46f92c0e6578741b7daa388e13a54c 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8c5193952d106b44a900e02029e0b322 3 | folderAsset: yes 4 | timeCreated: 1552797655 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Animation.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8b84a7a53b83d4f428817bbca4d3f9a2 3 | folderAsset: yes 4 | timeCreated: 1552797578 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Animation/Block.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9a37a8c1f3ad7b140ad9a6a95857dd0d 3 | folderAsset: yes 4 | timeCreated: 1552797578 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Animation/Block/Move.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ab3dfcdc167c53e489c98c621ca9ba13 3 | folderAsset: yes 4 | timeCreated: 1552797578 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Animation/Block/Move/BlockPeaceWalk.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7308b7e8bae301e4bb016f0ba5588b0d 3 | timeCreated: 1504245236 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | mainObjectFileID: 7400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Animation/Block/Move/YukaIdle.anim.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e98590834eec4524784eef2fa7f902a7 3 | timeCreated: 1491033428 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5eb94b1369bd28b4a96782a65d0ce132 3 | folderAsset: yes 4 | timeCreated: 1552797577 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Block2.fbx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/Block2.fbx -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34a894f1f0ce7694396d327b7f738812 3 | folderAsset: yes 4 | timeCreated: 1552797578 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Body.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4fe2a6c6884ed6646ad77fd6354130e5 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Eye.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Eye 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _FalloffSampler: 42 | m_Texture: {fileID: 2800000, guid: a1d5b2277eb3f6245900378e6fa97575, type: 3} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 2800000, guid: e2d39d2119287e5488e67fe3269e2d07, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _RimLightSampler: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | m_Floats: 66 | - _BumpScale: 1 67 | - _Cutoff: 0.5 68 | - _DetailNormalMapScale: 1 69 | - _DstBlend: 0 70 | - _GlossMapScale: 1 71 | - _Glossiness: 0.5 72 | - _GlossyReflections: 1 73 | - _Metallic: 0 74 | - _Mode: 0 75 | - _OcclusionStrength: 1 76 | - _Parallax: 0.02 77 | - _SmoothnessTextureChannel: 0 78 | - _SpecularHighlights: 1 79 | - _SrcBlend: 1 80 | - _UVSec: 0 81 | - _ZWrite: 1 82 | m_Colors: 83 | - _Color: {r: 1, g: 1, b: 1, a: 1} 84 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 85 | - _ShadowColor: {r: 0.8, g: 0.8, b: 1, a: 1} 86 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Eye.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9b7fb924ced83124abc2521fdbeb0b4f 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Eye2.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0da9a4efea544734f86c9ed8c751cdcb 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/EyeLine.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 252e97342a6c7344fbefa67ab0c12704 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Face.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e12f146d4fb38264ba15420e01fe6ada 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Hair.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90815384dc80fc04c971d40d52056a70 3 | timeCreated: 1504170296 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Hand.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: Hand 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _GlossMapScale: 1 63 | - _Glossiness: 0.5 64 | - _GlossyReflections: 1 65 | - _Metallic: 0 66 | - _Mode: 0 67 | - _OcclusionStrength: 1 68 | - _Parallax: 0.02 69 | - _SmoothnessTextureChannel: 0 70 | - _SpecularHighlights: 1 71 | - _SrcBlend: 1 72 | - _UVSec: 0 73 | - _ZWrite: 1 74 | m_Colors: 75 | - _Color: {r: 1, g: 0, b: 0, a: 1} 76 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 77 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/Hand.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6cd7848b6d2b9684ca4e593e255b237e 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/MianJu.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7293a35ab41a3aa43b34413fc1da94e3 3 | timeCreated: 1504170296 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/WeiJin.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: WeiJin 10 | m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} 11 | m_ShaderKeywords: _EMISSION 12 | m_LightmapFlags: 1 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _FalloffSampler: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 2800000, guid: 89a38b267b424bf42b6423a450c9c6ee, type: 3} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | - _RimLightSampler: 62 | m_Texture: {fileID: 0} 63 | m_Scale: {x: 1, y: 1} 64 | m_Offset: {x: 0, y: 0} 65 | m_Floats: 66 | - _BumpScale: 1 67 | - _Cutoff: 0.5 68 | - _DetailNormalMapScale: 1 69 | - _DstBlend: 0 70 | - _GlossMapScale: 1 71 | - _Glossiness: 0.5 72 | - _GlossyReflections: 1 73 | - _Metallic: 0 74 | - _Mode: 0 75 | - _OcclusionStrength: 1 76 | - _Parallax: 0.02 77 | - _SmoothnessTextureChannel: 0 78 | - _SpecularHighlights: 1 79 | - _SrcBlend: 1 80 | - _UVSec: 0 81 | - _ZWrite: 1 82 | m_Colors: 83 | - _Color: {r: 1, g: 0, b: 0, a: 1} 84 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 85 | - _ShadowColor: {r: 0.8, g: 0.8, b: 1, a: 1} 86 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Materials/WeiJin.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f7e671a0f8a0e34db5b90bc6c25af0c 3 | timeCreated: 1504170295 4 | licenseType: Free 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Skin_face.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/Skin_face.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/Skin_face.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f27015d6f05cedc49bb8fb5b890ec703 3 | timeCreated: 1504170630 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 59feaccf56bad7546ad19b3d64d339c9 3 | folderAsset: yes 4 | timeCreated: 1552797578 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Base_Color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Base_Color.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Base_Color.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5aca2477266869d4f82bd0763911a711 3 | timeCreated: 1504170357 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Height.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Height.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Height.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3b9e2bf5f4395de4cb4c8040d2c18c31 3 | timeCreated: 1504170393 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Mixed_AO.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Mixed_AO.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Mixed_AO.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 70cdce31967ea8047b2e23d045dc62fc 3 | timeCreated: 1504170395 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Normal_DirectX.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Normal_DirectX.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/body/DefaultMaterial_Normal_DirectX.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0bfb0fdb2e8fa3749abb910e6a52d5a0 3 | timeCreated: 1504170199 4 | licenseType: Pro 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 4 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | sRGBTexture: 0 12 | linearTexture: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 6 25 | cubemapConvolution: 0 26 | seamlessCubemap: 0 27 | textureFormat: -1 28 | maxTextureSize: 2048 29 | textureSettings: 30 | filterMode: -1 31 | aniso: -1 32 | mipBias: -1 33 | wrapMode: -1 34 | nPOTScale: 1 35 | lightmap: 0 36 | compressionQuality: 50 37 | spriteMode: 0 38 | spriteExtrude: 1 39 | spriteMeshType: 1 40 | alignment: 0 41 | spritePivot: {x: 0.5, y: 0.5} 42 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 43 | spritePixelsToUnits: 100 44 | alphaUsage: 1 45 | alphaIsTransparency: 0 46 | spriteTessellationDetail: -1 47 | textureType: 1 48 | textureShape: 1 49 | maxTextureSizeSet: 0 50 | compressionQualitySet: 0 51 | textureFormatSet: 0 52 | platformSettings: 53 | - buildTarget: DefaultTexturePlatform 54 | maxTextureSize: 2048 55 | textureFormat: -1 56 | textureCompression: 1 57 | compressionQuality: 50 58 | crunchedCompression: 0 59 | allowsAlphaSplitting: 0 60 | overridden: 0 61 | spriteSheet: 62 | serializedVersion: 2 63 | sprites: [] 64 | outline: [] 65 | spritePackingTag: 66 | userData: 67 | assetBundleName: 68 | assetBundleVariant: 69 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/eyeL_p.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/eyeL_p.tga -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/eyeL_p.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e2d39d2119287e5488e67fe3269e2d07 3 | timeCreated: 1504170628 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/eyeline2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/eyeline2.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/eyeline2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9878f42f54fbecc4abda90f10a29263f 3 | timeCreated: 1504170628 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/hair_black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/hair_black.png -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/hair_black.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37aec966131b4214a83c041f61ce980b 3 | timeCreated: 1504170627 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/timg (4).jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/timg (4).jpg -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/timg (4).jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 38a4626308dd1b7459ad35752df4548f 3 | timeCreated: 1504170787 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/weijin.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Block2/weijin.tga -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Block2/weijin.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89a38b267b424bf42b6423a450c9c6ee 3 | timeCreated: 1504170726 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | serializedVersion: 2 8 | mipmaps: 9 | mipMapMode: 0 10 | enableMipMap: 1 11 | linearTexture: 0 12 | correctGamma: 0 13 | fadeOut: 0 14 | borderMipMap: 0 15 | mipMapFadeDistanceStart: 1 16 | mipMapFadeDistanceEnd: 3 17 | bumpmap: 18 | convertToNormalMap: 0 19 | externalNormalMap: 0 20 | heightScale: 0.25 21 | normalMapFilter: 0 22 | isReadable: 0 23 | grayScaleToAlpha: 0 24 | generateCubemap: 0 25 | cubemapConvolution: 0 26 | cubemapConvolutionSteps: 7 27 | cubemapConvolutionExponent: 1.5 28 | seamlessCubemap: 0 29 | textureFormat: -1 30 | maxTextureSize: 2048 31 | textureSettings: 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapMode: -1 36 | nPOTScale: 1 37 | lightmap: 0 38 | rGBM: 0 39 | compressionQuality: 50 40 | allowsAlphaSplitting: 0 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 47 | spritePixelsToUnits: 100 48 | alphaIsTransparency: 0 49 | textureType: -1 50 | buildTargetSettings: [] 51 | spriteSheet: 52 | sprites: [] 53 | outline: [] 54 | spritePackingTag: 55 | userData: 56 | assetBundleName: 57 | assetBundleVariant: 58 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/MaxFriction.physicMaterial: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!134 &13400000 4 | PhysicMaterial: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: MaxFriction 9 | dynamicFriction: 1 10 | staticFriction: 1 11 | bounciness: 0 12 | frictionCombine: 0 13 | bounceCombine: 0 14 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/MaxFriction.physicMaterial.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ee8d2c4ab676dcd4cae548927719e365 3 | timeCreated: 1552811749 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 13400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/PlayerMain.controller.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6039617cfef7689458205ba2c829ec8c 3 | timeCreated: 1491032284 4 | licenseType: Pro 5 | NativeFormatImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99bcba7c6b0ccf943823bd0a5ca395f7 3 | folderAsset: yes 4 | timeCreated: 1552797578 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures/FO_CLOTH1.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Textures/FO_CLOTH1.tga -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures/FO_CLOTH1.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cc8f70f2ec571e9478efa98c041cde7b 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 256 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: 1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | spriteMode: 0 34 | spriteExtrude: 1 35 | spriteMeshType: 1 36 | alignment: 0 37 | spritePivot: {x: .5, y: .5} 38 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 39 | spritePixelsToUnits: 100 40 | alphaIsTransparency: 0 41 | textureType: -1 42 | buildTargetSettings: [] 43 | spriteSheet: 44 | sprites: [] 45 | spritePackingTag: 46 | userData: 47 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures/FO_RIM1.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Textures/FO_RIM1.tga -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures/FO_RIM1.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a18067604964b5a4d8fd5552ed0d789e 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: 1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | spriteMode: 0 34 | spriteExtrude: 1 35 | spriteMeshType: 1 36 | alignment: 0 37 | spritePivot: {x: .5, y: .5} 38 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 39 | spritePixelsToUnits: 100 40 | alphaIsTransparency: 0 41 | textureType: -1 42 | buildTargetSettings: [] 43 | spriteSheet: 44 | sprites: [] 45 | spritePackingTag: 46 | userData: 47 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures/FO_SKIN1.tga: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Repo/Player/PlayerMain/Textures/FO_SKIN1.tga -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/Textures/FO_SKIN1.tga.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1d5b2277eb3f6245900378e6fa97575 3 | TextureImporter: 4 | serializedVersion: 2 5 | mipmaps: 6 | mipMapMode: 0 7 | enableMipMap: 1 8 | linearTexture: 0 9 | correctGamma: 0 10 | fadeOut: 0 11 | borderMipMap: 0 12 | mipMapFadeDistanceStart: 1 13 | mipMapFadeDistanceEnd: 3 14 | bumpmap: 15 | convertToNormalMap: 0 16 | externalNormalMap: 0 17 | heightScale: .25 18 | normalMapFilter: 0 19 | isReadable: 0 20 | grayScaleToAlpha: 0 21 | generateCubemap: 0 22 | seamlessCubemap: 0 23 | textureFormat: -1 24 | maxTextureSize: 1024 25 | textureSettings: 26 | filterMode: -1 27 | aniso: -1 28 | mipBias: -1 29 | wrapMode: 1 30 | nPOTScale: 1 31 | lightmap: 0 32 | compressionQuality: 50 33 | spriteMode: 0 34 | spriteExtrude: 1 35 | spriteMeshType: 1 36 | alignment: 0 37 | spritePivot: {x: .5, y: .5} 38 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 39 | spritePixelsToUnits: 100 40 | alphaIsTransparency: 0 41 | textureType: -1 42 | buildTargetSettings: [] 43 | spriteSheet: 44 | sprites: [] 45 | spritePackingTag: 46 | userData: 47 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/ZeroFriction.physicMaterial: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!134 &13400000 4 | PhysicMaterial: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_Name: ZeroFriction 9 | dynamicFriction: 0 10 | staticFriction: 0 11 | bounciness: 0 12 | frictionCombine: 1 13 | bounceCombine: 1 14 | -------------------------------------------------------------------------------- /Assets/Repo/Player/PlayerMain/ZeroFriction.physicMaterial.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: deb55a9e15d00814d8367bda9a50c2c4 3 | timeCreated: 1552811724 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 13400000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c264e9867a5dd864083f5e6c31b2aeff 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Repo/Prefab/Environment.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d15f10ac0415f747a7085a399df660c 3 | timeCreated: 1552658741 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Prefab/Game Loop.prefab: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1001 &100100000 4 | Prefab: 5 | m_ObjectHideFlags: 1 6 | serializedVersion: 2 7 | m_Modification: 8 | m_TransformParent: {fileID: 0} 9 | m_Modifications: [] 10 | m_RemovedComponents: [] 11 | m_ParentPrefab: {fileID: 0} 12 | m_RootGameObject: {fileID: 1334468725440768} 13 | m_IsPrefabParent: 1 14 | --- !u!1 &1334468725440768 15 | GameObject: 16 | m_ObjectHideFlags: 0 17 | m_PrefabParentObject: {fileID: 0} 18 | m_PrefabInternal: {fileID: 100100000} 19 | serializedVersion: 5 20 | m_Component: 21 | - component: {fileID: 4997904945215938} 22 | - component: {fileID: 114816178146495290} 23 | m_Layer: 0 24 | m_Name: Game Loop 25 | m_TagString: Untagged 26 | m_Icon: {fileID: 0} 27 | m_NavMeshLayer: 0 28 | m_StaticEditorFlags: 0 29 | m_IsActive: 1 30 | --- !u!4 &4997904945215938 31 | Transform: 32 | m_ObjectHideFlags: 1 33 | m_PrefabParentObject: {fileID: 0} 34 | m_PrefabInternal: {fileID: 100100000} 35 | m_GameObject: {fileID: 1334468725440768} 36 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 37 | m_LocalPosition: {x: 0, y: 0, z: 0} 38 | m_LocalScale: {x: 1, y: 1, z: 1} 39 | m_Children: [] 40 | m_Father: {fileID: 0} 41 | m_RootOrder: 0 42 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 43 | --- !u!114 &114816178146495290 44 | MonoBehaviour: 45 | m_ObjectHideFlags: 1 46 | m_PrefabParentObject: {fileID: 0} 47 | m_PrefabInternal: {fileID: 100100000} 48 | m_GameObject: {fileID: 1334468725440768} 49 | m_Enabled: 1 50 | m_EditorHideFlags: 0 51 | m_Script: {fileID: 11500000, guid: 08654b480edabdd498e3245d27000d46, type: 3} 52 | m_Name: 53 | m_EditorClassIdentifier: 54 | sceneState: 0 55 | -------------------------------------------------------------------------------- /Assets/Repo/Prefab/Game Loop.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 65c11b3205bf1d344b20ab32d77a1f83 3 | timeCreated: 1552654817 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Prefab/LevelCamera.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4ac60bcbb26fa3d4a8b22b80ef3d0e5a 3 | timeCreated: 1552654798 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/Prefab/Light.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c4fbd1bd7ec958c4599e5ad96c4453f8 3 | timeCreated: 1552658738 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Repo/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16ab434af5c302c4e8e3854d6e352847 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b120cc2b9bd739447bbc6579b7e602d4 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Canvas.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9d7bf756a4f9310419dd8e4e8fb3a37d 3 | PrefabImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Resources/Enemys.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93aae49daeaa5384eb1bfcb9ac4222c6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9df32d971d82d2e478cb9442ceb4d093 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/ARJULIAN.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/ARJULIAN.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/ARJULIAN.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb459e6994d142647a9c499fd16ef806 3 | TrueTypeFontImporter: 4 | serializedVersion: 2 5 | fontSize: 16 6 | forceTextureCase: -2 7 | characterSpacing: 1 8 | characterPadding: 0 9 | includeFontData: 1 10 | use2xBehaviour: 0 11 | fontNames: [] 12 | fallbackFontReferences: [] 13 | customCharacters: 14 | fontRenderingMode: 0 15 | userData: 16 | assetBundleName: 17 | assetBundleVariant: 18 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Arial - Black.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/Arial - Black.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Arial - Black.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 332bb757cc1483b4593250529555daa8 3 | timeCreated: 1448940408 4 | licenseType: Store 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | fallbackFontReferences: [] 15 | customCharacters: 16 | fontRenderingMode: 0 17 | userData: 18 | assetBundleName: 19 | assetBundleVariant: 20 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Arial - Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/Arial - Bold.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Arial - Bold.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6f72d563c61066a4dab74d42e2ad1b36 3 | timeCreated: 1428925200 4 | licenseType: Store 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | userData: 17 | assetBundleName: 18 | assetBundleVariant: 19 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Arial - Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/Arial - Regular.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Arial - Regular.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 64311fa329d621a45a3b0b91104bf98a 3 | timeCreated: 1428925198 4 | licenseType: Store 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | userData: 17 | assetBundleName: 18 | assetBundleVariant: 19 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Consolas - Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/Consolas - Bold.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Consolas - Bold.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e88a0fa6137d70749ab2fd22d14a9911 3 | timeCreated: 1428950839 4 | licenseType: Store 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | userData: 17 | assetBundleName: 18 | assetBundleVariant: 19 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Consolas.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/Consolas.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/Consolas.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bc109215261f564ab76383e9ad48133 3 | timeCreated: 1428950839 4 | licenseType: Store 5 | TrueTypeFontImporter: 6 | serializedVersion: 2 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 1 10 | characterPadding: 0 11 | includeFontData: 1 12 | use2xBehaviour: 0 13 | fontNames: [] 14 | customCharacters: 15 | fontRenderingMode: 0 16 | userData: 17 | assetBundleName: 18 | assetBundleVariant: 19 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/FZYH.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/FZYH.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/FZYH.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8cd4cc5321fe5444bf5caaa6f65b1d2 3 | timeCreated: 1500386187 4 | licenseType: Pro 5 | TrueTypeFontImporter: 6 | serializedVersion: 4 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 0 10 | characterPadding: 1 11 | includeFontData: 1 12 | fontName: FZYiHei-M20S 13 | fontNames: 14 | - FZYiHei-M20S 15 | fallbackFontReferences: [] 16 | customCharacters: 17 | fontRenderingMode: 0 18 | ascentCalculationMode: 1 19 | userData: 20 | assetBundleName: 21 | assetBundleVariant: 22 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/MicrosoftYaHeiMini.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/MicrosoftYaHeiMini.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/MicrosoftYaHeiMini.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: df2007c32c3e38b41bd5659dc3036bca 3 | timeCreated: 1552660306 4 | licenseType: Free 5 | TrueTypeFontImporter: 6 | serializedVersion: 4 7 | fontSize: 16 8 | forceTextureCase: -2 9 | characterSpacing: 0 10 | characterPadding: 1 11 | includeFontData: 1 12 | fontName: Microsoft YaHei 13 | fontNames: 14 | - Microsoft YaHei 15 | fallbackFontReferences: [] 16 | customCharacters: 17 | fontRenderingMode: 0 18 | ascentCalculationMode: 1 19 | useLegacyBoundsCalculation: 0 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Resources/Fonts/constan.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Fonts/constan.ttf -------------------------------------------------------------------------------- /Assets/Resources/Fonts/constan.ttf.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 53b59257c0e991345a681cfc10624b5e 3 | TrueTypeFontImporter: 4 | serializedVersion: 4 5 | fontSize: 16 6 | forceTextureCase: -2 7 | characterSpacing: 0 8 | characterPadding: 1 9 | includeFontData: 1 10 | fontName: 11 | fontNames: [] 12 | fallbackFontReferences: [] 13 | customCharacters: 14 | fontRenderingMode: 0 15 | ascentCalculationMode: 1 16 | userData: 17 | assetBundleName: 18 | assetBundleVariant: 19 | -------------------------------------------------------------------------------- /Assets/Resources/Icons.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 577361e12297a204fb587a8052227672 3 | folderAsset: yes 4 | timeCreated: 1552792218 5 | licenseType: Free 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Resources/Musics.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b6306eb2e851c234687b290353988781 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Musics/WhiteLie.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Resources/Musics/WhiteLie.mp3 -------------------------------------------------------------------------------- /Assets/Resources/Musics/WhiteLie.mp3.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd58dbfe107a38a48a09a2f11d94df0c 3 | AudioImporter: 4 | externalObjects: {} 5 | serializedVersion: 6 6 | defaultSettings: 7 | loadType: 0 8 | sampleRateSetting: 0 9 | sampleRateOverride: 44100 10 | compressionFormat: 1 11 | quality: 1 12 | conversionMode: 0 13 | platformSettingOverrides: {} 14 | forceToMono: 0 15 | normalize: 1 16 | preloadAudioData: 1 17 | loadInBackground: 0 18 | ambisonic: 0 19 | 3D: 1 20 | userData: 21 | assetBundleName: 22 | assetBundleVariant: 23 | -------------------------------------------------------------------------------- /Assets/Resources/Particles.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d3f090dcd40e24b4ab3fa06dd3bdd0e2 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Players.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 810eb41e3f1377543ab6f5f5118862f7 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/Players/Player.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08124ed7f849d0142af0d9bd3fbfd223 3 | timeCreated: 1552797511 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: 100100000 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Resources/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf406d3d2c1290545a302816deb9d474 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Resources/UI/FadeIn.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 40586768a5115e64fa154ec75ef9a4e0 3 | timeCreated: 1552802276 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Resources/UI/FadeInWhite.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3a101f98f562b394a9a7df2b702cc105 3 | timeCreated: 1552802276 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Resources/UI/FadeOut.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2d89a5efc6fbee4593bff64d6862a47 3 | timeCreated: 1552802276 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Resources/UI/FadeOutWhite.prefab.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 15d6e38f51d81cf46b48a5fecf3d53f5 3 | timeCreated: 1552802276 4 | licenseType: Free 5 | NativeFormatImporter: 6 | mainObjectFileID: -1 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Save.xml: -------------------------------------------------------------------------------- 1 | c6463cc20943c6b24d36eb2a0d13fb8e31cba6031100trueIcons\Weapon\Katana太刀精心加工而成的太刀,用各种方式斩杀怪物都不会有问题false60300020000Decoration3-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1 -------------------------------------------------------------------------------- /Assets/Save.xml.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61244a5b03dd70a4eb969eb78d40ed63 3 | timeCreated: 1552810721 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb75b02c50312b7468302655667e7653 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/Start.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 16fd83b5b477bbe4488dae25dfbf8dfe 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f794b2847965bcc4eb53e6c2d1fda0c1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/Editor.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 19152f30a080e374084734985d3e28a1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4feac24d5f879c142b03f8aee15efa45 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/Enemy.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7ca47fb047d26be45bf8e18f8c747923 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/Player.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 280888f9dfef2b948b77501b1cc71e72 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/Player/PlayerMain.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73d3f8922facdca4f9f2bb678a321385 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/Player/PlayerMainMono.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:挂载在Player上的mono脚本 8 | 作用:通常是为了封装动画帧事件和物理引擎而编写 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | using SFramework; 18 | 19 | namespace DreamKeeper 20 | { 21 | public class PlayerMainMono : IPlayerMono 22 | { 23 | // 暂时没有要执行的 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/Player/PlayerMainMono.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66a45acb4bdb5c84584287273172bd6e 3 | timeCreated: 1552797562 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/Scene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 09b05ec2124448147b348a6aca3b0d69 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/SceneState.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c017915ba2639d64fb7b8c7cc0ee457b 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b0cae87874b519747a67ca918cf12279 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/UI/UIFadeIn.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:简单的淡入效果 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | using SFramework; 16 | using UnityEngine.UI; 17 | 18 | namespace ProjectScript 19 | { 20 | public class UIFadeIn : ViewBase 21 | { 22 | private float fadeSpeed = 0.5f; 23 | private Image image; 24 | private Color color; 25 | private bool isFading = true; 26 | 27 | private void Awake() 28 | { 29 | base.UIForm_Type = UIFormType.PopUp; 30 | base.UIForm_ShowMode = UIFormShowMode.ReverseChange; 31 | base.UIForm_LucencyType = UIFormLucenyType.Lucency; 32 | image = GetComponent(); 33 | color = image.color; 34 | } 35 | 36 | private void Update() 37 | { 38 | if (isFading) 39 | { 40 | if (color.a < 1) 41 | { 42 | color.a += Time.deltaTime * fadeSpeed; 43 | image.color = color; 44 | } 45 | else 46 | { 47 | isFading = false; 48 | } 49 | } 50 | } 51 | } 52 | } -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/UI/UIFadeIn.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 241b5850dc2f0814fb9d12ec2bf38ccb 3 | timeCreated: 1552802324 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/UI/UIFadeOut.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:简单的淡出效果 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | using SFramework; 16 | using UnityEngine.UI; 17 | 18 | namespace ProjectScript 19 | { 20 | public class UIFadeOut : ViewBase 21 | { 22 | private float fadeSpeed = 0.5f; 23 | private Image image; 24 | private Color color; 25 | private bool isFading = true; 26 | 27 | private void Awake() 28 | { 29 | base.UIForm_Type = UIFormType.PopUp; 30 | base.UIForm_ShowMode = UIFormShowMode.ReverseChange; 31 | base.UIForm_LucencyType = UIFormLucenyType.Lucency; 32 | image = GetComponent(); 33 | color = image.color; 34 | } 35 | 36 | private void Update() 37 | { 38 | if (isFading) 39 | { 40 | if (color.a > 0) 41 | { 42 | color.a -= Time.deltaTime * fadeSpeed; 43 | image.color = color; 44 | } 45 | else 46 | { 47 | isFading = false; 48 | GameMainProgram.Instance.uiManager.CloseUIForms("FadeOut"); 49 | GameMainProgram.Instance.uiManager.CloseUIForms("FadeOutWhite"); 50 | Destroy(gameObject); 51 | } 52 | } 53 | } 54 | } 55 | } -------------------------------------------------------------------------------- /Assets/Scripts/ProjectScript/UI/UIFadeOut.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cd7423b290408ed4883818eef6c753bd 3 | timeCreated: 1552802324 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 14972c76ee9360740a59ba1d660419d8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 77a58d04dad80b74ca29b235ad9e3b9b 3 | folderAsset: yes 4 | timeCreated: 1494418708 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/EnemyHurtAttr.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace SFramework 6 | { 7 | /// 8 | /// 传参给Enemy受伤的属性类 9 | /// 10 | public class EnemyHurtAttr 11 | { 12 | public int Attack { get; set; } 13 | public float VelocityForward { get; set; } 14 | public float VelocityVertical { get; set; } 15 | public Vector3 TransformForward { get; set; } 16 | 17 | public EnemyHurtAttr() 18 | { } 19 | 20 | public void ModifyAttr(int attack, float velocityForward, float velocityVertical,Vector3 transformForward) 21 | { 22 | Attack = attack; 23 | VelocityForward = velocityForward; 24 | VelocityVertical = velocityVertical; 25 | TransformForward = transformForward; 26 | } 27 | } 28 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/EnemyHurtAttr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 67bc2c5a8b427de4faa3d91fb8c01cfa 3 | timeCreated: 1495350150 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/EnemyMediator.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using UnityEngine; 3 | 4 | namespace SFramework 5 | { 6 | /// 7 | /// IEnemy,IEnemyMono,IEnemyWeapon3个关联类的中介者 8 | /// 负责更换装备 9 | /// 10 | public class EnemyMediator 11 | { 12 | public IEnemy Enemy { get; set; } 13 | public IEnemyMono EnemyMono { get; set; } 14 | public IEnemyWeapon EnemyWeapon { get; set; } 15 | public IEquip WeaponData { get; set; } // 和PlayerMediator不同的是,Enemy没有Fit[],所以需要专门存储武器和防具 16 | 17 | public EnemyMediator(IEnemy enemy) 18 | { 19 | Enemy = enemy; 20 | } 21 | 22 | public void Initialize() 23 | { 24 | // 默认装备,可以在后续修改其对象 25 | EnemyMono = Enemy.GameObjectInScene.GetComponent(); 26 | if (EnemyMono != null) 27 | { 28 | EnemyMono.EnemyMedi = this; 29 | EnemyMono.AnimatorComponent = Enemy.animator; 30 | EnemyMono.Rgbd = Enemy.Rgbd; 31 | EnemyWeapon = EnemyMono.iEnemyWeapon; 32 | EnemyMono.Initialize(); 33 | if (EnemyWeapon != null) 34 | { 35 | EnemyWeapon.EnemyMedi = this; 36 | EnemyWeapon.Initialize(); 37 | EnemyMono.WeaponCollider = EnemyWeapon.WeaponCollider; 38 | } 39 | else 40 | Debug.LogError("iEnemyWeapon未赋值"); 41 | } 42 | 43 | UpdateEnemyWeapon(EnemyMono.iEnemyWeapon); 44 | } 45 | 46 | 47 | /// 48 | /// 设置WeaponData,使用的是装备的武器 49 | /// 就目前的实现来说,所有Weapon对象均共用同一个IWeaponMono,所以初始化时关联一个默认Weapon,切换武器时切换Weapon对象即可 50 | /// 51 | /// 52 | public void UpdateEnemyWeapon(IEnemyWeapon enemyWeapon) 53 | { 54 | 55 | } 56 | } 57 | 58 | 59 | } 60 | 61 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/EnemyMediator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6f31241d803ab44a920bf71d29c0134 3 | timeCreated: 1500819512 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/EnemyMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:敌方角色控制系统 8 | 作用:存储整个场景中的所有Enemy,负责敌方角色的创建,管理,删除 9 | 使用:调用接口 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 敌人控制系统 22 | /// 23 | public class EnemyMgr : IGameMgr 24 | { 25 | private List enemysInScene; 26 | 27 | public EnemyMgr(GameMainProgram gameMain) : base(gameMain) 28 | { 29 | enemysInScene = new List(); 30 | } 31 | 32 | public override void Initialize() 33 | { 34 | gameMain.eventMgr.StartListening(EventName.PlayerDead, NotifyPlayerDead); 35 | } 36 | public override void Release() 37 | { 38 | foreach (IEnemy e in enemysInScene) 39 | { 40 | if (e != null) 41 | e.Release(); 42 | } 43 | enemysInScene.Clear(); 44 | gameMain.eventMgr.StopListening(EventName.PlayerDead, NotifyPlayerDead); 45 | } 46 | public override void FixedUpdate() 47 | { 48 | foreach (IEnemy e in enemysInScene) 49 | e.FixedUpdate(); 50 | } 51 | public override void Update() 52 | { 53 | foreach (IEnemy e in enemysInScene) 54 | e.Update(); 55 | } 56 | public void NotifyPlayerDead() 57 | { 58 | foreach (IEnemy e in enemysInScene) 59 | e.WhenPlayerDead(); 60 | } 61 | 62 | /// 63 | /// 加入Enemy并初始化 64 | /// 65 | /// 66 | public void AddEnemy(IEnemy _enemy) 67 | { 68 | if (_enemy != null) 69 | { 70 | enemysInScene.Add(_enemy); 71 | _enemy.Initialize(); 72 | } 73 | } 74 | 75 | /// 76 | /// 删除Enemy并释放 77 | /// 78 | /// 79 | private void RemoveEnemy(IEnemy _enemy) 80 | { 81 | if (_enemy != null) 82 | { 83 | enemysInScene.Remove(_enemy); 84 | _enemy.Release(); 85 | } 86 | } 87 | 88 | } 89 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/EnemyMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 92ce1767b49f50048ad21d4de97ec135 3 | timeCreated: 1495348712 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/ICharacter.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb083fce5b9169149addf8803b70bf9c 3 | timeCreated: 1494418718 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/ICharacterMono.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4897fbf1d6d53f146952ef0945e0dfe6 3 | timeCreated: 1499915190 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IEnemy.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.AI; 5 | 6 | namespace SFramework 7 | { 8 | /// 9 | /// + Enemy的所有属性 10 | /// 11 | public class IEnemy : ICharacter 12 | { 13 | protected EnemyMediator EnemyMedi { get; set; } 14 | 15 | public IEnemy(GameObject gameObject):base(gameObject) 16 | { 17 | if (GameObjectInScene != null) 18 | { 19 | animator = GameObjectInScene.GetComponent(); 20 | Rgbd = GameObjectInScene.GetComponent(); 21 | // 关联中介者 22 | EnemyMedi = new EnemyMediator(this); 23 | EnemyMedi.Initialize(); 24 | } 25 | } 26 | 27 | public override void Release() 28 | { 29 | EnemyMedi.EnemyMono.Release(); // 先释放再销毁 30 | if (GameObjectInScene != null) 31 | GameObject.Destroy(GameObjectInScene); 32 | } 33 | public virtual EnemyAction Hurt(EnemyHurtAttr enemyHurtAttr) 34 | { 35 | return EnemyAction.Hurt; 36 | } 37 | 38 | public virtual void WhenPlayerDead() 39 | { 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IEnemy.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c42c48f66aee3aa44b95a0a955c1893e 3 | timeCreated: 1495185629 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IEnemyMono.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.AI; 5 | 6 | namespace SFramework 7 | { 8 | /// 9 | ///+ iEnemyWeapon 预制属性,进行初始化 10 | ///+ EnemyMediator 11 | ///+ 动画事件 12 | ///+ Target 导航目标 13 | ///由EnemyMediator初始化,不使用Mono生命周期 14 | ///Enemy的MonoBehaviour脚本,用于武器碰撞检测、动画事件和行为树控制 15 | /// 16 | public class IEnemyMono : ICharacterMono 17 | { 18 | public string targetTag = "Player"; 19 | public IEnemyWeapon iEnemyWeapon; //在预制时赋好的变量,与武器引用 20 | 21 | public EnemyMediator EnemyMedi { get; set; } 22 | public Transform Target { get; set; } 23 | 24 | public override void Initialize() 25 | { 26 | base.Initialize(); 27 | FindTarget(); 28 | 29 | } 30 | public override void Release() 31 | { 32 | iEnemyWeapon.Release(); 33 | } 34 | 35 | private void Update() 36 | { 37 | if (Target == null) 38 | FindTarget(); 39 | } 40 | 41 | /// 42 | /// 封装iEnemy成员,不要直接使用iEnemy 43 | /// 44 | /// 45 | public virtual EnemyAction Hurt(EnemyHurtAttr enemyHurtAttr) 46 | { 47 | return EnemyMedi.Enemy.Hurt(enemyHurtAttr); 48 | } 49 | 50 | /// 51 | /// findTagTarget 52 | /// 53 | public void FindTarget() 54 | { 55 | var targetObj = GameObject.FindGameObjectWithTag(targetTag); 56 | if (targetObj) 57 | Target = targetObj.transform; 58 | } 59 | 60 | } 61 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IEnemyMono.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5f788afe4e768574595e67972b61a4d8 3 | timeCreated: 1495372194 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/INPC.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | 3 | namespace SFramework 4 | { 5 | /// 6 | /// NPC基类,NPC都会说话,无声音,不移动,动态添加到场景,以Prefab形式保存 7 | /// 8 | public abstract class INPC:MonoBehaviour 9 | { 10 | public Animator AnimatorComponent { get; protected set; } 11 | 12 | protected string dialogKey = string.Empty; 13 | protected float maxDistance = 2; 14 | protected IPlayer player; 15 | protected Transform playerTransform; 16 | protected GameMainProgram gameMainProgram; 17 | 18 | /// 19 | /// 初始化和释放由NpcMgr调用 20 | /// 21 | public virtual void Initialize() 22 | { 23 | gameMainProgram=GameMainProgram.Instance; 24 | AnimatorComponent = gameObject.GetComponent(); 25 | // Npc的生成应该在Player之后 26 | player = GameMainProgram.Instance.playerMgr.CurrentPlayer; 27 | if (player != null) 28 | playerTransform = player.GameObjectInScene.transform; 29 | else 30 | Debug.LogError("未能获取到Player"); 31 | } 32 | 33 | public virtual void Release() 34 | { 35 | Destroy(gameObject); 36 | } 37 | 38 | public virtual void OnUpdate() 39 | { 40 | if (player == null) 41 | { 42 | player = gameMainProgram.playerMgr.CurrentPlayer; 43 | if (player != null) 44 | playerTransform = player.GameObjectInScene.transform; 45 | } 46 | if (!UIDialog.IsTalking) 47 | { 48 | if (playerTransform == null) 49 | return; 50 | if (Vector3.Distance(playerTransform.position, transform.position) > maxDistance) 51 | return; 52 | //if(gameMainProgram.courseMgr.normalMenuOpen) // 如果暂停菜单打开着,那么不对话 53 | return; 54 | // 在半径为maxDistance的圆范围内时检测输入 55 | if (Input.GetButtonDown("Attack1")) 56 | { 57 | // 对话并禁止移动 58 | UIDialog.IsTalking = true; 59 | gameMainProgram.playerMgr.CurrentPlayer.CanMove = false; 60 | //转向,懒得做,因为禁止移动做的都不好 gameMainProgram.playerMgr.CurrentPlayer.GameObjectInScene.transform.rotation 61 | gameMainProgram.dialogMgr.StartDialog(dialogKey, OnDialogComplete); 62 | } 63 | } 64 | } 65 | 66 | /// 67 | /// 对话结束时的事件 68 | /// 69 | protected virtual void OnDialogComplete() 70 | { 71 | UIDialog.IsTalking = false; 72 | } 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/INPC.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 471d223d339c3ed4487d88723309086c 3 | timeCreated: 1504016531 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IPlayer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8136955162ebe6948a8bc904853f5077 3 | timeCreated: 1495108520 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IPlayerMono.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介: 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | ///+ iPlayerWeapon 预制属性,进行初始化 22 | ///+ PlayerMediator 23 | ///+ 动画事件 24 | ///由PlayerMediator初始化,不使用Mono生命周期 25 | ///Player的MonoBehaviour脚本,用于武器碰撞检测和动画事件 26 | /// 27 | public abstract class IPlayerMono : ICharacterMono 28 | { 29 | public IPlayerWeapon iPlayerWeapon; //在预制时赋好的变量 30 | protected AnimatorStateInfo stateInfo; 31 | public PlayerMediator PlayerMedi { get; set; } 32 | 33 | /// 34 | /// Release也不会删除GO。 35 | /// 36 | public override void Release() 37 | { 38 | iPlayerWeapon.Release(); 39 | } 40 | 41 | /// 42 | /// 提供给EnemyAttack调用 43 | /// 44 | /// 45 | public virtual void Hurt(PlayerHurtAttr _playerHurtAttr) 46 | { 47 | PlayerMedi.Player.Hurt(_playerHurtAttr); 48 | } 49 | 50 | /// 51 | /// 因为Animator不能在AnimationCurve设定所以只好用帧事件 52 | /// 53 | public virtual void AnimatorRootMotion(int open) 54 | { 55 | if(open==1) 56 | AnimatorComponent.applyRootMotion=true; 57 | else 58 | AnimatorComponent.applyRootMotion =false; 59 | } 60 | } 61 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/IPlayerMono.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4f36830de1a7b2c4ca79a63e1dbbd350 3 | timeCreated: 1498097125 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/PlayerHurtAttr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介: 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 传参给Player受伤的属性类 22 | /// 23 | public class PlayerHurtAttr 24 | { 25 | public int Attack { get; set; } 26 | public float VelocityForward { get; set; } 27 | public float VelocityVertical { get; set; } 28 | public Vector3 TransformForward { get; set; } 29 | public bool CanDefeatedFly { get; set; } 30 | 31 | public PlayerHurtAttr() 32 | { } 33 | 34 | public void ModifyAttr(int attack, float velocityForward, float velocityVertical, Vector3 transformForward, 35 | bool canDefeatedFly=false) 36 | { 37 | Attack = attack; 38 | VelocityForward = velocityForward; 39 | VelocityVertical = velocityVertical; 40 | TransformForward = transformForward; 41 | CanDefeatedFly = canDefeatedFly; 42 | } 43 | } 44 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/PlayerHurtAttr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aa5ce9ff08179714e95081543bd19a84 3 | timeCreated: 1498666019 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/PlayerMediator.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:中介者模式 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | TODO:装备这边尚未实现 13 | ----------------------------------------------------------------------------*/ 14 | 15 | using System; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// IPlayer,IPlayerMono,IPlayerWeapon3个关联类的中介者 22 | /// 负责更换装备 23 | /// 24 | public class PlayerMediator 25 | { 26 | public IPlayer Player { get; set; } 27 | public IPlayerMono PlayerMono { get; set; } 28 | public IPlayerWeapon PlayerWeapon { get; set; } // 可为null 29 | 30 | public PlayerMediator(IPlayer player) 31 | { 32 | Player = player; 33 | } 34 | 35 | /// 36 | /// 建立3个成员的关联 37 | /// 38 | public void Initialize() 39 | { 40 | PlayerMono = Player.GameObjectInScene.GetComponent(); 41 | if (PlayerMono) 42 | { 43 | PlayerMono.PlayerMedi= this; 44 | PlayerMono.Rgbd = Player.Rgbd; 45 | PlayerMono.AnimatorComponent = Player.animator; 46 | PlayerWeapon = PlayerMono.iPlayerWeapon; 47 | PlayerMono.Initialize(); 48 | if (PlayerWeapon != null) 49 | { 50 | PlayerWeapon.PlayerMedi = this; // 引用 51 | PlayerWeapon.Initialize(); 52 | PlayerMono.WeaponCollider = PlayerWeapon.WeaponCollider; 53 | } 54 | else 55 | Debug.LogWarning("iPlayerWeapon未赋值"); 56 | UpdatePlayerWeapon(PlayerMono.iPlayerWeapon); 57 | } 58 | } 59 | 60 | /// 61 | /// 用于从装备更新角色和武器属性 62 | /// 63 | /// 64 | public void FitEquip() 65 | { 66 | UpdatePlayerWeapon(PlayerWeapon); 67 | } 68 | 69 | /// 70 | /// 设置WeaponData,使用的是装备的武器 71 | /// 做强化系统时再加上强化的数值 72 | /// 73 | /// 哪一个PlayerWeapon 74 | private void UpdatePlayerWeapon(IPlayerWeapon playerWeapon) 75 | { 76 | if (playerWeapon == null) 77 | return; 78 | } 79 | 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/PlayerMediator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b52245a008e6024082bc4e2429d51ee 3 | timeCreated: 1500791386 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/PlayerMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:角色控制系统 8 | 作用:负责角色的创建,管理,删除 9 | 使用:调用接口 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 角色控制系统 22 | /// 23 | public class PlayerMgr : IGameMgr 24 | { 25 | public IPlayer CurrentPlayer { get; private set; } // 切换场景时不要消除引用 26 | public bool CanInput { get; set; } 27 | 28 | public PlayerMgr(GameMainProgram gameMain):base(gameMain) 29 | { 30 | } 31 | 32 | public override void Initialize() 33 | { 34 | if (CurrentPlayer != null) 35 | CurrentPlayer.Initialize(); 36 | } 37 | 38 | public override void Release() 39 | { 40 | // Destroy 41 | if (CurrentPlayer != null) 42 | { 43 | CurrentPlayer.Release(); 44 | GameObject.Destroy(CurrentPlayer.GameObjectInScene); 45 | CurrentPlayer = null; 46 | } 47 | else 48 | Debug.Log("无CurrentPlayer可以销毁!"); 49 | } 50 | 51 | public override void FixedUpdate() 52 | { 53 | if (CurrentPlayer != null && CanInput) 54 | CurrentPlayer.FixedUpdate(); 55 | } 56 | 57 | public override void Update() 58 | { 59 | if (CurrentPlayer != null && CanInput) 60 | CurrentPlayer.Update(); 61 | } 62 | 63 | public void BuildPlayer(Vector3 position, Quaternion quaternion) 64 | { 65 | if (CurrentPlayer == null) 66 | SetCurrentPlayer(new ProjectScript.PlayerMain(GameMainProgram.Instance.resourcesMgr. 67 | LoadAsset(@"Players\Player", false, position, quaternion))); 68 | gameMain.gameDataMgr.Load(CurrentPlayer); // 读档 69 | } 70 | 71 | public void SetCurrentPlayer(IPlayer player) 72 | { 73 | CurrentPlayer = player; 74 | CurrentPlayer.Initialize(); // 设置Player时进行初始化 75 | } 76 | 77 | public void SetPlayerPosition(Vector3 pos) 78 | { 79 | CurrentPlayer.GameObjectInScene.transform.position = pos; 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Character/PlayerMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 901ff8932c9d9d8469f23c9fddcd9839 3 | timeCreated: 1495114867 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameLoop.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:游戏的入口类,继承了MonoBehaviour 8 | 作用:控制场景状态机SceneStateController的初始状态、更新及设置起始场景 9 | 使用:在每个场景,我们只需要创建一个挂载了GameLoop脚本的物体,并选择需要动态加载的场景状态,就可以测试目标场景,而无需修改代码。这使得场景测试更加快捷 10 | 补充:项目主逻辑只用这一个Monobehaviour脚本驱动,并且设置了DontDestroyOnLoad,使之在每个场景下都保持为单例 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | 16 | namespace SFramework 17 | { 18 | /// 19 | /// 游戏主循环 20 | /// 21 | public class GameLoop : MonoBehaviour 22 | { 23 | private static GameLoop _instance; 24 | 25 | public static GameLoop Instance 26 | { 27 | get 28 | { 29 | if (_instance == null) 30 | { 31 | _instance = FindObjectOfType(); 32 | 33 | if (_instance == null) 34 | _instance = new GameObject("GameLoop").AddComponent(); 35 | } 36 | return _instance; 37 | } 38 | } 39 | 40 | public SceneStateController sceneStateController = new SceneStateController(); 41 | 42 | [SerializeField] 43 | private SceneState sceneState; 44 | 45 | void Awake() 46 | { 47 | if (_instance == null) 48 | _instance = GetComponent(); 49 | else if (_instance != GetComponent()) 50 | { 51 | Debug.LogWarningFormat("There is more than one {0} in the scene,auto inactive the copy one.", typeof(GameLoop).ToString()); 52 | Destroy(gameObject); 53 | return; 54 | } 55 | DontDestroyOnLoad(gameObject); 56 | } 57 | 58 | void Start() 59 | { 60 | // 要测试的场景,只需要在Inspector中设置就行了 61 | sceneStateController.SetState(sceneState, false); 62 | } 63 | 64 | void FixedUpdate() 65 | { 66 | //物理相关的处理 67 | sceneStateController.FixedUpdate(); 68 | } 69 | 70 | void Update() 71 | { 72 | sceneStateController.StateUpdate(); 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameLoop.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08654b480edabdd498e3245d27000d46 3 | timeCreated: 1504434241 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: -500 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMainProgram.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 921e82dec6bb5e84390b1e8f8e54fa02 3 | timeCreated: 1494400034 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 180b386eab8faba4eb28005539b68e12 3 | folderAsset: yes 4 | timeCreated: 1494398462 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/AudioMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9ed39ebd7e0cc964ca468e47db197aa9 3 | timeCreated: 1502952510 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/CoroutineMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:协程控制系统 8 | 作用:让不继承Monobehavior的物体也能够使用协程 9 | 使用:CoroutineMgr.Instance.方法 10 | 补充:单例模式。 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 协程管理器 22 | /// 23 | public class CoroutineMgr : MonoBehaviour 24 | { 25 | private static CoroutineMgr _instance; 26 | 27 | public static CoroutineMgr Instance 28 | { 29 | get 30 | { 31 | if (_instance == null) 32 | { 33 | _instance = FindObjectOfType(); 34 | 35 | if (_instance == null) 36 | _instance = new GameObject("CoroutineMgr").AddComponent(); 37 | } 38 | return _instance; 39 | } 40 | } 41 | 42 | void Awake() 43 | { 44 | if (_instance == null) 45 | _instance = GetComponent(); 46 | else if (_instance != GetComponent()) 47 | { 48 | Debug.LogWarningFormat("There is more than one {0} in the scene,auto inactive the copy one.", typeof(CoroutineMgr).ToString()); 49 | gameObject.SetActive(false); 50 | return; 51 | } 52 | DontDestroyOnLoad(gameObject); 53 | } 54 | 55 | // 其实这里不封装也能调用,因为继承了 56 | public new Coroutine StartCoroutine(IEnumerator routine) 57 | { 58 | return base.StartCoroutine(routine); 59 | } 60 | 61 | public new void StopCoroutine(IEnumerator routine) 62 | { 63 | base.StopCoroutine(routine); 64 | } 65 | 66 | public new void StopAllCoroutines() 67 | { 68 | base.StopAllCoroutines(); 69 | } 70 | 71 | public new void StopCoroutine(Coroutine routine) 72 | { 73 | base.StopCoroutine(routine); 74 | } 75 | } 76 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/CoroutineMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 224179303a0959243aab507357dfe8c2 3 | timeCreated: 1501250951 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/CourseMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90edd1057441c2347b3edad24532f9bd 3 | timeCreated: 1499315558 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/DataBaseMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:游戏数据库(默认基于Json) 8 | 作用:存放游戏中的所有装备、道具等数据,提供给游戏中数据对象使用。 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 游戏数据库 22 | /// 23 | public class DataBaseMgr : IGameMgr 24 | { 25 | // 字典存放所有种类的Item,key也可以用enum 26 | public Dictionary equipDict; 27 | public Dictionary enemyEquipDict; 28 | public List Tasks { get; set; } 29 | public IProp[] Props { get; private set; } 30 | 31 | public DataBaseMgr(GameMainProgram gameMain) : base(gameMain) 32 | { 33 | } 34 | 35 | /// 36 | /// 常用于调用FileMgr加载数据库文件 37 | /// 38 | public override void Awake() 39 | { 40 | equipDict = gameMain.fileMgr.LoadJsonDataBase>("Equip"); 41 | Debug.Log("Equip数据加载完毕"); 42 | Props = gameMain.fileMgr.LoadJsonDataBase("Prop"); 43 | Debug.Log("Prop数据库加载完毕"); 44 | enemyEquipDict = gameMain.fileMgr.LoadJsonDataBase>("EnemyEquip"); 45 | Debug.Log("EnemyEquip数据加载完毕"); 46 | Tasks = gameMain.fileMgr.LoadJsonDataBase>("Tasks"); 47 | Debug.Log("Tasks数据加载完毕"); 48 | Debug.Log("数据库文件全部加载完毕"); 49 | } 50 | 51 | } 52 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/DataBaseMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: aae6c34026d966740abd54a79a38ee59 3 | timeCreated: 1500644558 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/DialogMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:对话系统 8 | 作用:管理游戏中的所有对话。只是保存所有对话,对话实质实现由UIDialog控制 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | using System.Collections; 16 | using System.Collections.Generic; 17 | using UnityEngine.Events; 18 | 19 | namespace SFramework 20 | { 21 | /// 22 | /// 对话管理 23 | /// 24 | public class DialogMgr:IGameMgr 25 | { 26 | private Dictionary> talksDict; 27 | 28 | public DialogMgr(GameMainProgram gameMain) : base(gameMain) 29 | { 30 | } 31 | 32 | public override void Awake() 33 | { 34 | talksDict= gameMain.fileMgr.LoadJsonDataBase>>("Dialog"); 35 | Debug.Log("成功读取对话数据"); 36 | } 37 | 38 | public void StartDialog(string key,UnityAction dialogCompleteAction=null) 39 | { 40 | List talks = UnityHelper.FindDic(talksDict, key); 41 | 42 | if (talks == null||talks.Count==0) 43 | { 44 | Debug.LogError("对话内容为空"); 45 | return; 46 | } 47 | UIDialog.StartDialog(talks,dialogCompleteAction); 48 | } 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/DialogMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e0a2f9dd435d23b489c365b9de41037b 3 | timeCreated: 1503990564 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/EventMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f1830e7c85fd50d4ba542fc32cec6f5f 3 | timeCreated: 1498228753 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/FileMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c8ebe444a5e309b4fba0d52f11c3023c 3 | timeCreated: 1500609948 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/GameDataMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83330775f54db6546a62494ea91994be 3 | timeCreated: 1501299965 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/IGameMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:子系统抽象类 8 | 作用:子系统作为管理者,需要负责被管理对象的 Awake,Initialize,FixedUpdate,Update,Release 生命周期的调用。 9 | 使用:声明一个Manager类,继承并实现IGameMgr类 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | using System.Collections; 16 | 17 | namespace SFramework 18 | { 19 | /// 20 | /// 游戏管理者抽象类 21 | /// 22 | public abstract class IGameMgr 23 | { 24 | protected GameMainProgram gameMain = null; 25 | 26 | // 继承后在这里声明需要被管理的对象 27 | 28 | /// 29 | /// 构造函数需指定GameMainProgram 30 | /// 31 | /// 32 | public IGameMgr(GameMainProgram gameMain) 33 | { 34 | this.gameMain = gameMain; 35 | } 36 | 37 | // 以下接口提供给GameMainProgram调用 38 | /// 39 | /// 初次构造后调用(Awake方法通常需要用到其他Mgr,因此需要在构造函数之后执行) 40 | /// 41 | public virtual void Awake() { } 42 | 43 | /// 44 | /// 每次场景加载后调用 45 | /// 46 | public virtual void Initialize() { } 47 | 48 | /// 49 | /// 场景切换时调用 50 | /// 51 | public virtual void Release() { } 52 | 53 | public virtual void FixedUpdate() { } 54 | 55 | public virtual void Update() { } 56 | 57 | } 58 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/IGameMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90c5a0e9097841147879fe0274fc32f4 3 | MonoImporter: 4 | serializedVersion: 2 5 | defaultReferences: [] 6 | executionOrder: 0 7 | icon: {instanceID: 0} 8 | userData: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/LanguageMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:游戏界面语言管理器 8 | 作用:从设置获取当前语言,存储不同语言显示的字符,以及更换游戏中的字体 9 | 使用:当需要显示文本时,调用ShowText接口 10 | 补充:默认提供中文和英语两种语言选择 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 多语言本地化 22 | /// 23 | public class LanguageMgr : IGameMgr 24 | { 25 | private SettingData SettingSaveData { get; set; } // 存储语言首选项 26 | private Dictionary languageCN_Dict; 27 | private Dictionary languageEN_Dict; 28 | private Font fontCN; 29 | private Font fontEN; 30 | private string fontPathCN = @"Fonts\MicrosoftYaHeiMini"; 31 | private string fontPathEN = @"Fonts\ARJULIAN"; 32 | 33 | public LanguageMgr(GameMainProgram gameMain) : base(gameMain) 34 | { 35 | languageCN_Dict = new Dictionary(); 36 | languageEN_Dict = new Dictionary(); 37 | } 38 | 39 | public override void Awake() 40 | { 41 | SettingSaveData = gameMain.gameDataMgr.SettingSaveData; 42 | // 加载语言本地化数据文件 43 | languageCN_Dict = gameMain.fileMgr.LoadJsonDataBase>("Language_CN"); 44 | languageEN_Dict = gameMain.fileMgr.LoadJsonDataBase>("Language_EN"); 45 | // 加载语言对应的字体 46 | fontCN = gameMain.resourcesMgr.LoadResource(fontPathCN); 47 | fontEN = gameMain.resourcesMgr.LoadResource(fontPathEN); 48 | Debug.Log("LanguageMgr加载完毕"); 49 | } 50 | 51 | /// 52 | /// 显示文本信息 53 | /// 54 | /// 文本的ID 55 | /// 56 | public string ShowText(string stringId) 57 | { 58 | if (SettingSaveData.IsChinese) 59 | return UnityHelper.FindDic(languageCN_Dict, stringId); 60 | else 61 | return UnityHelper.FindDic(languageEN_Dict, stringId); 62 | } 63 | 64 | public Font GetFont(int fontChoose = 0) 65 | { 66 | if (fontChoose == 1) 67 | return fontCN; 68 | else if (fontChoose == 2) 69 | return fontEN; 70 | else if (SettingSaveData.IsChinese) 71 | return fontCN; 72 | else 73 | return fontEN; 74 | 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/LanguageMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 05d73388afe05f7458e2972473e0e976 3 | timeCreated: 1501052050 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/NpcMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0c87e939b4995aa4ba51c916266c23e6 3 | timeCreated: 1504064274 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/ResourcesMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 265171c5957cace46a92adfdb392d19f 3 | timeCreated: 1493525234 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/SqlMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00e4ed30373dcf54699d22cdfc6f44e2 3 | timeCreated: 1508241810 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/ThreadMgr.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介: 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using System.Threading; 17 | using UnityEngine; 18 | 19 | namespace SFramework 20 | { 21 | /// 22 | /// 线程管理 23 | /// 24 | public class ThreadMgr : IGameMgr 25 | { 26 | public List ThreadList { get; set; } 27 | 28 | public ThreadMgr(GameMainProgram gameMain) : base(gameMain) 29 | { 30 | ThreadList = new List(); 31 | } 32 | 33 | public override void Initialize() 34 | { 35 | } 36 | 37 | public override void Release() 38 | { 39 | } 40 | 41 | /// 42 | /// 创建无参线程对象 43 | /// 44 | /// 45 | public Thread CreateThread(ThreadStart fun) 46 | { 47 | Thread thread = new Thread(fun); 48 | ThreadList.Add(thread); 49 | //启动线程 50 | thread.Start(); 51 | return thread; 52 | } 53 | 54 | /// 55 | /// 创建有参线程对象 56 | /// 57 | /// 58 | public Thread CreateThread(ParameterizedThreadStart fun) 59 | { 60 | Thread thread = new Thread(fun); 61 | ThreadList.Add(thread); 62 | //启动线程 63 | thread.Start(); 64 | return thread; 65 | } 66 | 67 | /// 68 | /// 在线程池中创建一个后台线程 69 | /// 70 | /// 71 | public void CreateInThreadPool(WaitCallback callback) 72 | { 73 | ThreadPool.QueueUserWorkItem(callback); 74 | } 75 | 76 | } 77 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/GameMgr/ThreadMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fec6d31206869f843bb51b3718706587 3 | timeCreated: 1508648881 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Item.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 33aaa61acebb1c445a24b23b2a7118ea 3 | folderAsset: yes 4 | timeCreated: 1495371607 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Item/IEquip.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:装备基类 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System; 15 | using System.Collections; 16 | using System.Collections.Generic; 17 | using UnityEngine; 18 | using System.Xml.Serialization; 19 | 20 | namespace SFramework 21 | { 22 | /// 23 | /// 装备基类 24 | /// 25 | public class IEquip : IItem 26 | { 27 | // 展示属性 28 | public FitType Type { get; protected set; } // 装备类型 29 | 30 | public IEquip() : base() 31 | { 32 | Type = FitType.Weapon; 33 | Name = "Equip"; 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Item/IEquip.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 94af5fcc66337cb4fae126ad59256d17 3 | timeCreated: 1499841437 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Item/IItem.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 17cccf11cf125e74c965ad319bf55021 3 | timeCreated: 1499840354 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Item/IProp.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:道具基类 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 道具基类 22 | /// 23 | public class IProp : IItem 24 | { 25 | // 展示属性 26 | public int Id { get; protected set; } 27 | public PropType Type { get; protected set; } 28 | public int MaxNum { get; protected set; } //上限数目 29 | 30 | public IProp():base() 31 | { 32 | Id = 0; 33 | Type = PropType.Medicine; 34 | Name = "Prop"; 35 | MaxNum = 100; 36 | } 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Item/IProp.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0f19974985fe50a4da9b603762a3a7a8 3 | timeCreated: 1499841452 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5cfb12f036f91b54a8029d4d8daa0c96 3 | folderAsset: yes 4 | timeCreated: 1498460521 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/AutoCam.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Assets/Scripts/SFramework/MonoFunction/AutoCam.cs -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/AutoCam.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b1cde2eaae062a54d8765dcfb6cababb 3 | timeCreated: 1552811102 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/AutoDisable.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介: 8 | 作用:常用于特效 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | using System; 18 | 19 | namespace SFramework 20 | { 21 | /// 22 | /// 自动关闭或销毁 23 | /// 24 | public class AutoDisable : MonoBehaviour 25 | { 26 | public enum Disable { SetFalse, Destroy } 27 | public Disable disable = Disable.Destroy; 28 | public float time = 1; 29 | private AudioSource audioSource; 30 | 31 | void Awake() 32 | { 33 | audioSource=GetComponent(); 34 | GameMainProgram.Instance.audioMgr.AddSound(audioSource); 35 | } 36 | 37 | void OnEnable() 38 | { 39 | StartCoroutine(Wait()); 40 | } 41 | 42 | void OnDestroy() 43 | { 44 | GameMainProgram.Instance.audioMgr.RemoveSound(audioSource); 45 | } 46 | 47 | IEnumerator Wait() 48 | { 49 | yield return new WaitForSeconds(time); 50 | if (disable == Disable.SetFalse) 51 | gameObject.SetActive(false); 52 | else 53 | Destroy(gameObject); 54 | } 55 | } 56 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/AutoDisable.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3aa496075d3166740901e5789bf20426 3 | timeCreated: 1497781473 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/CameraCtrl.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 73cfbd177624590419c267e620bfeb8c 3 | timeCreated: 1499184431 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/ShakeObject.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介: 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 震动物体,主要用于Camera震屏 22 | /// 23 | public class ShakeObject : MonoBehaviour 24 | { 25 | // enable设为true后,在startTime后震屏一次 26 | public float startTime = 1.0f; // 开始震屏的时间 27 | public Vector3 directionStrength = new Vector3(0, 1, 0); //方向和力度 28 | public float speed = 1.0f; // 震动速度,影响震动的时长 29 | public AnimationCurve curve = new AnimationCurve(new Keyframe(0, 0), new Keyframe(0.13f, 0.4f), new Keyframe(0.33f, -0.33f), new Keyframe(0.5f, 0.17f), new Keyframe(0.71f, -0.12f), new Keyframe(1, 0)); 30 | // 动画曲线默认持续1s,实际震动时长=1/speed 31 | 32 | float timer; 33 | float keepTimer; 34 | float duration; 35 | Vector3 thisPosition; // currentPos-lastShakePos 36 | Vector3 shakePosition;// culculatePos 37 | 38 | void OnEnable() 39 | { 40 | duration = 1 / speed; 41 | } 42 | 43 | void FixedUpdate() 44 | { 45 | keepTimer += Time.deltaTime; 46 | thisPosition = transform.position - shakePosition; 47 | shakePosition = new Vector3(curve.Evaluate((keepTimer - timer) * speed) * directionStrength.x, 48 | curve.Evaluate((keepTimer - timer) * speed) * directionStrength.y, curve.Evaluate((keepTimer - timer) * speed) * directionStrength.z); 49 | if (timer >= startTime) 50 | { 51 | transform.position = shakePosition + thisPosition; 52 | // 震屏结束后 53 | if(keepTimer>startTime+duration) 54 | { 55 | keepTimer = timer = 0; 56 | enabled = false; 57 | } 58 | } 59 | else 60 | { 61 | timer += Time.deltaTime; 62 | } 63 | } 64 | 65 | 66 | 67 | } 68 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/ShakeObject.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b62394dd1b8b4045b90c781339341a8 3 | timeCreated: 1552810718 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/MonoFunction/TransparentCam.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c66ac2c76505f0445a400b22f1c1d83b 3 | timeCreated: 1552811148 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SceneState.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d05a18db0f7069943b2e0069de53976b 3 | folderAsset: yes 4 | timeCreated: 1494398433 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SceneState/ISceneState.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:场景状态类的基类(接口) 8 | 作用:控制接口方法的初始化、更新、释放 9 | 使用:场景状态类决定了这个场景中存在哪些对象,使用哪些功能 10 | 补充: 11 | History: 12 | 2019/03/15 之前保留了一个awake方法,现在用不上了,用构造函数实现 13 | ----------------------------------------------------------------------------*/ 14 | 15 | using System.Collections; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | /// 场景状态"接口"类 22 | /// 23 | public abstract class ISceneState 24 | { 25 | public string SceneName { get; set; } // UnityScene文件对应的名称,即需要加载的场景名称 26 | protected SceneStateController Controller { get; set; } // 控制者 27 | protected GameMainProgram gameMainProgram; // 主程序 28 | 29 | public ISceneState(SceneStateController controller) 30 | { 31 | Controller = controller; 32 | } 33 | 34 | /// 35 | /// 初始化GameMainProgram,初始化场景,场景初始设置 36 | /// 37 | public virtual void StateBegin() 38 | { 39 | gameMainProgram = GameMainProgram.Instance; 40 | gameMainProgram.Initialize(); 41 | } 42 | 43 | /// 44 | /// 结束场景 45 | /// 46 | public virtual void StateEnd() 47 | { 48 | gameMainProgram.Release(); 49 | } 50 | 51 | public virtual void FixedUpdate() 52 | { 53 | gameMainProgram.FixedUpdate(); 54 | } 55 | 56 | public virtual void StateUpdate() 57 | { 58 | gameMainProgram.Update(); 59 | } 60 | 61 | public override string ToString() 62 | { 63 | return SceneName; 64 | } 65 | 66 | 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SceneState/ISceneState.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2f5de975131cf8f498f4a5e3fce895a6 3 | timeCreated: 1494397594 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SceneState/SceneStateController.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f337675e763d6a444a6b61ba1f1fccd4 3 | timeCreated: 1494397761 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SceneState/StartScene.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:StartState是ISceneState接口的一个实例,作为初始场景状态类展示场景状态的使用方法 8 | 作用:控制主程序的Initialize、FixedUpdate、Update、Release 9 | 使用:建议的命名为:SceneName要和场景名称相同,SceneState类名为"场景名称"+"Scene"。场景、场景名、场景类一一对应,不要重名 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | public class StartScene : ISceneState 21 | { 22 | public StartScene(SceneStateController controller) : base(controller) 23 | { 24 | this.SceneName = "Start"; 25 | } 26 | 27 | public override void StateBegin() 28 | { 29 | base.StateBegin(); 30 | // 场景初始化 31 | gameMainProgram.playerMgr.BuildPlayer(Vector3.zero, Quaternion.identity); 32 | gameMainProgram.playerMgr.CanInput = true; // 接受输入 33 | // 其他角色在Player之后创建 34 | 35 | // UI,BGM 36 | GameMainProgram.Instance.uiManager.ShowUIForms("FadeOut"); 37 | gameMainProgram.audioMgr.PlayMusic(0); 38 | } 39 | 40 | public override void StateEnd() 41 | { 42 | // 先Release其他成员,再调用base 43 | base.StateEnd(); 44 | } 45 | 46 | public override void FixedUpdate() 47 | { 48 | base.FixedUpdate(); 49 | } 50 | 51 | public override void StateUpdate() 52 | { 53 | base.StateUpdate(); 54 | } 55 | 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SceneState/StartScene.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bec48145901e23b43872110c669c72fd 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SystemDefine.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:系统全局变量定义文件 8 | 作用:定义系统的全局变量,在本文件保存除UI外所有全局公共枚举。UI相关的全局变量放在Common.cs文件中 9 | 使用:可以直接为契合项目而修改本文件,设置你需要的全局变量(包括枚举类型) 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | namespace SFramework 15 | { 16 | /// 17 | /// 系统全局变量设置 18 | /// 19 | public static class SystemDefine 20 | { 21 | // 填写全局变量 22 | 23 | } 24 | 25 | public enum ObjectLayer 26 | { 27 | Default = 0, 28 | TransparentFX = 1, 29 | IgnoreRaycast = 2, 30 | BuiltinLayer3, 31 | Water = 4, 32 | UI = 5, 33 | BuiltinLayer6, 34 | BuiltinLayer7, 35 | Ground = 8, 36 | Player = 9, 37 | Enemy = 10, 38 | Effect = 11, 39 | PlayerWeapon = 12, 40 | EnemyWeapon = 13, 41 | Without = 14, 42 | Wall = 15, 43 | PostProcessing = 16, 44 | } 45 | 46 | /// 47 | /// 装备的类型,及对应的Slot位置 48 | /// 49 | public enum FitType 50 | { 51 | Prop = -1, // 非药物的道具,不可装备 52 | Cloth = 0, 53 | Cestus = 1, 54 | Weapon = 2, 55 | Decoration = 3, 56 | Pants = 4, 57 | Shoe = 5, 58 | } 59 | 60 | public enum PropType 61 | { 62 | Medicine=0, 63 | Material=1, 64 | Event=2 65 | } 66 | 67 | /// 68 | /// 定义Hurt的返回值 69 | /// 70 | public enum EnemyAction 71 | { 72 | Hurt = 0, // 受伤 73 | Defend = 1, // 轻攻击防御,重攻击被破防 74 | Parry = 2, // 轻攻击防御,重攻击弹开 75 | Shield = 3, // 轻重攻击都弹开 76 | Miss = 4, // 未命中 77 | } 78 | 79 | public enum EnemyType 80 | { 81 | Monster = 0, 82 | Warrior = 1, 83 | Magian = 2, 84 | } 85 | 86 | /// 87 | /// 各个事件 88 | /// 89 | public enum EventName 90 | { 91 | PlayerHP_SP = 0, 92 | PlayerDead = 1, 93 | MedicineNum = 2, 94 | BossDead = 3, 95 | DialogComplete=4, 96 | } 97 | 98 | /// 99 | /// 使用标准委托的事件 100 | /// 101 | public enum EventHandlerName 102 | { } 103 | 104 | 105 | 106 | } 107 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/SystemDefine.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 445384674dbf5c1418cfa10cf4288ff8 3 | timeCreated: 1495261666 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e6dc5e99e04f55c49afd1d6920f9532f 3 | folderAsset: yes 4 | timeCreated: 1494397434 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/Common.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:UI框架核心参数 8 | 作用:包括 9 | 1:系统常量 10 | 2:全局性方法。 11 | 3:系统枚举类型 12 | 4:委托定义 13 | 使用: 14 | 补充: 15 | History: 16 | ----------------------------------------------------------------------------*/ 17 | 18 | using UnityEngine; 19 | 20 | namespace SFramework 21 | { 22 | #region 系统枚举类型 23 | 24 | /// 25 | /// UI窗体(位置)类型 26 | /// 27 | public enum UIFormType 28 | { 29 | /// 30 | /// 普通窗体 31 | /// 32 | Normal, 33 | /// 34 | /// 固定窗体,非全屏非弹出窗体均属于这种,位置放在Normal之上,如CharacterInventory 35 | /// 36 | Fixed, 37 | /// 38 | /// 弹出窗体,位置最靠前 39 | /// 40 | PopUp 41 | } 42 | 43 | /// 44 | /// UI窗体的显示类型 45 | /// 46 | public enum UIFormShowMode 47 | { 48 | /// 49 | /// 可以与其他窗体并列显示的窗体 50 | /// 51 | Normal, 52 | /// 53 | /// “反向切换”:用于弹出窗体,栈存储,即我们一般要求玩家必须先关闭弹出的顶层窗体,再依次关闭下一级窗体。 54 | /// 55 | ReverseChange, 56 | /// 57 | /// 隐藏其他窗体,通常用于全屏窗体 58 | /// 59 | HideOther 60 | } 61 | 62 | /// 63 | /// 遮罩窗体透明度类型,仅对弹出窗体有用 64 | /// 65 | public enum UIFormLucenyType 66 | { 67 | /// 68 | /// 完全透明,不能穿透 69 | /// 70 | Lucency, 71 | /// 72 | /// 半透明,不能穿透 73 | /// 74 | Translucence, 75 | /// 76 | /// 低透明,不能穿透 77 | /// 78 | ImPenetrable, 79 | /// 80 | /// 可以穿透 81 | /// 82 | Pentrate 83 | } 84 | 85 | #endregion 86 | 87 | public class Common : MonoBehaviour 88 | { 89 | /* 路径常量 */ 90 | public const string SYS_PATH_CANVAS = "Canvas"; 91 | public const string SYS_PATH_UI = @"\Resources\UI\"; 92 | /* 标签常量 */ 93 | public const string SYS_TAG_CANVAS = "Canvas"; 94 | /* 节点常量 */ 95 | public const string SYS_NORMAL_NODE = "Normal"; 96 | public const string SYS_FIXED_NODE = "Fixed"; 97 | public const string SYS_POPUP_NODE = "PopUp"; 98 | 99 | /* 摄像机层深的常量 */ 100 | 101 | /* 全局性的方法 */ 102 | //Todo... 103 | 104 | /* 委托的定义 */ 105 | //Todo.... 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/Common.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f9fd2b26a0b915d4180fca874b4e17a7 3 | timeCreated: 1493519311 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/UIDialog.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c222914617cb1f94d9b1ac1f2155d3cc 3 | timeCreated: 1504004788 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/UILoading.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:实现异步加载的UI进度条 8 | 作用:Loading场景作为异步的中转站 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | using UnityEngine.UI; 18 | using UnityEngine.SceneManagement; 19 | 20 | namespace SFramework 21 | { 22 | public class UILoading : MonoBehaviour 23 | { 24 | public static string nextScene = "Main"; // 静态传值 25 | public Image fillImg; 26 | public Text percentageText; 27 | 28 | void Start() 29 | { 30 | StartCoroutine(LoadingSceneAsync(nextScene)); 31 | } 32 | 33 | /// 34 | /// 异步加载 35 | /// 36 | /// 37 | /// 38 | private IEnumerator LoadingSceneAsync(string sceneName) 39 | { 40 | float displayProgress = 0; // 显示进度 41 | float toProgress = 0; // 当前加载的进度 42 | AsyncOperation op = SceneManager.LoadSceneAsync(sceneName); 43 | op.allowSceneActivation = false; // 未加载完时不激活这个Scene 44 | while (op.progress < 0.9f) 45 | { 46 | toProgress = (int)op.progress; 47 | while (displayProgress < toProgress) 48 | { 49 | displayProgress += 0.01f; 50 | percentageText.text = (int)(displayProgress * 100)+"%"; 51 | fillImg.fillAmount = displayProgress; 52 | yield return new WaitForEndOfFrame(); 53 | } 54 | } 55 | toProgress = 1; 56 | while (displayProgress < toProgress) 57 | { 58 | displayProgress += 0.01f; 59 | percentageText.text = (int)(displayProgress * 100) + "%"; 60 | fillImg.fillAmount = displayProgress; 61 | yield return new WaitForEndOfFrame(); 62 | } 63 | op.allowSceneActivation = true; // 其实同步如果更快的话早就加载完了,但是再快我们也要限制在100帧后才能激活新场景 64 | } 65 | } 66 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/UILoading.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29070bc1fb541ec45bb032050e18fee4 3 | timeCreated: 1501252896 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/UIManager.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cd4c60b230ece54fae05878fa6a4d74 3 | timeCreated: 1493527438 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/UIMaskMgr.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bda93cb4741891b4ca54f2bd31857612 3 | timeCreated: 1493526541 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/UI/ViewBase.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b5ca92bc6578efd40a96d563a400d18c 3 | timeCreated: 1493519032 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0d3511ade84e2ef49a7e6236b5830578 3 | folderAsset: yes 4 | timeCreated: 1501250951 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/ExtensionMethods.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Text; 5 | 6 | namespace SFramework 7 | { 8 | /// 9 | /// 扩展方法集中管理静态类 10 | /// 11 | public static class ExtensionMethods 12 | { 13 | /// 14 | /// 为string扩展IsNullOrEmpty方法 15 | /// 16 | /// 17 | /// 18 | public static bool IsNullOrEmpty(this string str) 19 | { 20 | return String.IsNullOrEmpty(str); 21 | } 22 | 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/ExtensionMethods.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a1f8fbbb52b9e2a43882c6b5207a1ed8 3 | timeCreated: 1508256260 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/GameData.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:存档包含的数据(包括游戏存档和设置存档) 8 | 作用:持久化数据 9 | 使用:根据自己需要保存的数据来编写 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | using System.Collections.Generic; 16 | 17 | namespace SFramework 18 | { 19 | /// 20 | /// Xml存档的数据对象 21 | /// 读取引用类型的数据从GameData获取比较保险,读取值类型数据则从CurrentPlayer获取 22 | /// 23 | public class GameData 24 | { 25 | // 密钥,用于防止拷贝存档 26 | public string key; 27 | 28 | // 下面是添加需要储存的内容,目前都是Player的内容 29 | // Player的属性由装备和初始值决定,无需记录 30 | public string Name { get; set; } 31 | public int Rank { get; set; } 32 | public int Gold { get; set; } 33 | // 技能开关 34 | public bool CanAttack { get; set; } 35 | // 装备和道具 36 | public IEquip[] Fit { get; set; } 37 | public int[] PropNum { get; set; } // 和Player使用同一地址 38 | // 任务数据 39 | public List TasksData { get; set; } 40 | 41 | public GameData() 42 | { 43 | //构造函数,设置默认存档 44 | key = SystemInfo.deviceUniqueIdentifier; //设定密钥,根据具体平台设定// 45 | // Player 46 | Name = "我"; 47 | Rank = 1; 48 | Gold = 100; 49 | 50 | CanAttack = true; 51 | // 初始装备 52 | Fit = new IEquip[6]; 53 | Fit[(int)FitType.Weapon] = UnityHelper.FindDic(GameMainProgram.Instance.dataBaseMgr.equipDict, "太刀"); 54 | // 初始背包,1~31值为-1 55 | PropNum = new int[32]; 56 | for (int i = 1; i < 32; i++) 57 | PropNum[i] = -1; 58 | PropNum[0] = 3; 59 | // 其他 60 | TasksData = new List(); 61 | } 62 | } 63 | 64 | /// 65 | /// 存储设置数据。 66 | /// 结束场景时存档,加载场景时读档(BuildPlayer),但是只有第一次读档是从文件中读档,之后直接读取运行时存档即可 67 | /// 68 | public class SettingData 69 | { 70 | // 因为不能存float,所以int放大100倍 71 | public int MusicVolume { get; set; } 72 | public int SoundVolume { get; set; } 73 | public bool IsChinese { get; set; } // 语言变更后需要重新打开UI才能生效,但是一般打开Setting时,其他UI都没打开 74 | 75 | public SettingData() 76 | { 77 | MusicVolume = 100; 78 | SoundVolume = 100; 79 | IsChinese = true; 80 | } 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/GameData.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 95d366352b7726940a132adc7457aabd 3 | timeCreated: 1501750850 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/Loom.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4990af10fa4077848b2521dd9c1a9850 3 | timeCreated: 1508291796 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/Singleton.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:框架中提供了两个单例模式的模板,此类为不继承MonoBehaviour的模板 8 | 作用:易于实现单例模式 9 | 使用:继承该单例类即可 10 | 补充:注意单例类的构造函数必须是private的,这样才能确保类只有一个对象,不让外部类实例化该类 11 | 单例类不能够被继承 12 | History: 13 | ----------------------------------------------------------------------------*/ 14 | 15 | using UnityEngine; 16 | 17 | namespace SFramework 18 | { 19 | /// 20 | /// 单例模板,不继承MonoBehaviour。new()约束可以让编译器知道:提供的任何类型参数都必须具有可访问的无参数(或默认)构造函数。 21 | /// 22 | /// 23 | public class Singleton where T : new() 24 | { 25 | private static T _instance; 26 | 27 | public static T Instance 28 | { 29 | get 30 | { 31 | if (_instance == null) 32 | { 33 | _instance = new T(); 34 | // 不继承mono的单例不一定要挂载到gameObject上 35 | Debug.Log("生成Singleton" + typeof(T).ToString()); 36 | } 37 | return _instance; 38 | } 39 | } 40 | 41 | } 42 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/Singleton.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 00b597c4bb3ac4044b4a6c6e23819651 3 | timeCreated: 1493481126 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/SingletonMonoBehaviour.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:框架中提供了两个单例模式的模板,此类为继承MonoBehaviour的模板 8 | 作用:易于实现单例模式 9 | 使用:继承该单例类即可 10 | 补充:注意单例类的构造函数必须是private的,这样才能确保类只有一个对象,不让外部类实例化该类 11 | 单例类不能够被继承 12 | History: 13 | ----------------------------------------------------------------------------*/ 14 | 15 | using System.Collections; 16 | using System.Collections.Generic; 17 | using UnityEngine; 18 | 19 | namespace SFramework 20 | { 21 | /// 22 | /// 单例模板,要求T(类)继承MonoBehaviour 23 | /// 24 | /// 25 | public class SingletonMonoBehaviour : MonoBehaviour where T : MonoBehaviour 26 | { 27 | private static T _instance; 28 | /// 29 | /// 外界通过属性调用单例以及创建单例 30 | /// 31 | public static T Instance 32 | { 33 | get 34 | { 35 | if (_instance == null) 36 | { 37 | _instance = FindObjectOfType(); 38 | 39 | if (_instance == null) 40 | { 41 | _instance = new GameObject("single_" + typeof(T)).AddComponent(); 42 | print("生成SingletonMonoBehaviour" + typeof(T).ToString()); 43 | } 44 | } 45 | return _instance; 46 | } 47 | } 48 | protected virtual void Init() 49 | { 50 | DontDestroyOnLoad(gameObject);//切换场景不销毁 51 | hideFlags = HideFlags.DontSave; 52 | } 53 | /// 54 | /// awake时进行单例检测和初始化 55 | /// 56 | protected virtual void Awake() 57 | { 58 | if (_instance == null) 59 | _instance = GetComponent(); 60 | else if (_instance != GetComponent()) 61 | { 62 | Debug.LogWarningFormat("场景中超过1个{0},关闭新增的物体", typeof(T).ToString()); 63 | gameObject.SetActive(false); 64 | return; 65 | } 66 | Init(); 67 | } 68 | } 69 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/SingletonMonoBehaviour.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75d6c9cb64df25541b2df223971943cb 3 | timeCreated: 1493481126 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/Task.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介:简易的任务系统,包括存储任务显示信息的Task结构,和存储玩家任务完成情况的TaskData结构 8 | 作用: 9 | 使用:可以根据项目需要改写代码。添加任务-调用IPlayer.AddTask(目前暂时只在UITasksMenu中用到) 10 | 补充:TODO:暂未完善 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using UnityEngine; 15 | 16 | namespace SFramework 17 | { 18 | /// 19 | /// 存储任务信息,存在数据库文件中 20 | /// 21 | public class Task 22 | { 23 | public string TaskName { get; set; } 24 | public string TaskPlace { get; set; } 25 | public int TaskAward { get; set; } 26 | 27 | public Task() 28 | { 29 | TaskName = "讨伐xxx"; 30 | TaskPlace = "xx"; 31 | TaskAward = 0; 32 | } 33 | } 34 | 35 | /// 36 | /// 存储任务完成相关信息,存在存档里 37 | /// 38 | public class TaskData 39 | { 40 | public int Id { get; set; } // 对应在任务数据库的下标 41 | public bool IsActive { get; set; } 42 | 43 | public bool HasCompleted 44 | { 45 | get { return HasCompletedRank1 || HasCompletedRank2 || HasCompletedRank3; } 46 | } 47 | public bool HasCompletedRank1 { get; set; } 48 | public bool HasCompletedRank2 { get; set; } 49 | public bool HasCompletedRank3 { get; set; } 50 | 51 | /// 52 | /// 添加新任务时,默认的构造 53 | /// 54 | public TaskData() 55 | { 56 | Id = 0; 57 | IsActive = true; 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/Task.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 08cca3c6bb8e30e49b921fbf015edaa3 3 | timeCreated: 1552661039 4 | licenseType: Free 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/UnityHelper.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 42b54c45ec5c236489f324ff353c634b 3 | timeCreated: 1493521757 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Utility/XmlSaver.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bc290d402774f749bb22241c82cd80f 3 | timeCreated: 1501299965 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 93a3b1292a253a84a9387b36dbe02138 3 | folderAsset: yes 4 | timeCreated: 1499872825 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon/IEnemyWeapon.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace SFramework 6 | { 7 | /// 8 | ///+ 敌人武器所需属性 9 | ///+ EnemyMediator 10 | /// 武器的控制层 11 | /// 12 | public abstract class IEnemyWeapon : IWeaponMono 13 | { 14 | public EnemyMediator EnemyMedi { get; set; } 15 | public bool IsOnlyPlayer { get; set; } 16 | protected PlayerHurtAttr PlayerHurtAttr { get; set; } 17 | protected IPlayerMono OnlyPlayerMono { get; set; } 18 | 19 | public override void Initialize() 20 | { 21 | base.Initialize(); 22 | //一定要初始化 23 | TransformForward = Vector3.zero; 24 | PlayerHurtAttr = new PlayerHurtAttr(); 25 | } 26 | 27 | } 28 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon/IEnemyWeapon.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 89f0bb4cf9d5c494a98351427851c4e7 3 | timeCreated: 1495187877 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon/IPlayerWeapon.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | namespace SFramework 6 | { 7 | /// 8 | /// + 玩家武器所需属性 9 | /// + PlayerMediator 10 | /// 武器的控制层 11 | /// 12 | public abstract class IPlayerWeapon:IWeaponMono 13 | { 14 | protected string hitEffectPath; //打击特效 15 | protected List enemyList; 16 | 17 | public PlayerMediator PlayerMedi { get; set; } 18 | protected EnemyHurtAttr EnemyHurtAttribute { get; set; } 19 | /// 20 | /// 敌人是否防御住了攻击 21 | /// 22 | protected EnemyAction EnemyReturn { get; set; } 23 | 24 | /// 25 | /// 清空队列,提供给AnimEvent 26 | /// 27 | public void ClearList() 28 | { 29 | enemyList.Clear(); 30 | } 31 | 32 | public override void Initialize() 33 | { 34 | base.Initialize(); 35 | EnemyHurtAttribute = new EnemyHurtAttr(); 36 | EnemyReturn = EnemyAction.Hurt; 37 | //List必须要初始化 38 | enemyList = new List(); 39 | } 40 | 41 | public override void Release() 42 | { 43 | base.Release(); 44 | ClearList(); 45 | } 46 | 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon/IPlayerWeapon.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18cbbf44b2ef63e4da94851145eb4382 3 | timeCreated: 1499915190 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon/IWeaponMono.cs: -------------------------------------------------------------------------------- 1 | /*---------------------------------------------------------------------------- 2 | Author: 3 | Anotts 4 | Date: 5 | 2017/08/01 6 | Description: 7 | 简介: 8 | 作用: 9 | 使用: 10 | 补充: 11 | History: 12 | ----------------------------------------------------------------------------*/ 13 | 14 | using System.Collections; 15 | using System.Collections.Generic; 16 | using UnityEngine; 17 | 18 | namespace SFramework 19 | { 20 | /// 21 | ///+ 可在检视面板设置的属性 22 | ///+ 武器战斗系统所需属性 23 | ///会细分为Player和Enemy两种,两者的武器可以互相转换 24 | /// 25 | public class IWeaponMono : MonoBehaviour 26 | { 27 | //可在检视面板设置的属性 28 | public float m_AttackFactor = 1; //攻击力系数,不同的攻击方式改变的是攻击力系数而不是基础攻击力 29 | public float m_VelocityForward = 6; 30 | public float m_VelocityVertical; 31 | public bool canDefeatedFly = false; // 攻击后是否击飞 32 | protected ResourcesMgr resourcesMgr; 33 | 34 | public int BasicAttack { get; set; } 35 | public int Crit { get; set; } 36 | //武器战斗系统所需属性 37 | public float AttackFactor { get { return m_AttackFactor; } set { m_AttackFactor = value; } } 38 | public float VelocityForward { get { return m_VelocityForward; } set { m_VelocityForward = value; } } 39 | public float VelocityVertical { get { return m_VelocityVertical; } protected set { m_VelocityVertical = value; } } 40 | public Vector3 TransformForward { get; protected set; } 41 | public Collider WeaponCollider { get; protected set; } 42 | protected float RealAttack { get; set; } 43 | 44 | public virtual void Initialize() 45 | { 46 | resourcesMgr = GameMainProgram.Instance.resourcesMgr; 47 | WeaponCollider = GetComponent(); 48 | AttackFactor = 1; 49 | VelocityForward = 7; 50 | } 51 | 52 | public virtual void Release() { } 53 | public virtual void Update() { } 54 | public virtual void FixedUpdate() { } 55 | 56 | protected virtual void OnTriggerEnter(Collider col) { } 57 | 58 | } 59 | } -------------------------------------------------------------------------------- /Assets/Scripts/SFramework/Weapon/IWeaponMono.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd71e139bf4c8e84d805e7ee94161e92 3 | timeCreated: 1499872837 4 | licenseType: Pro 5 | MonoImporter: 6 | serializedVersion: 2 7 | defaultReferences: [] 8 | executionOrder: 0 9 | icon: {instanceID: 0} 10 | userData: 11 | assetBundleName: 12 | assetBundleVariant: 13 | -------------------------------------------------------------------------------- /Assets/Setting.json: -------------------------------------------------------------------------------- 1 | {"MusicVolume":100,"SoundVolume":100,"IsChinese":true} -------------------------------------------------------------------------------- /Assets/Setting.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e88a248b277c844586b8c72feb8958f 3 | timeCreated: 1552658778 4 | licenseType: Free 5 | TextScriptImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 09cb4bf3d7d1868419b9907c6b5d5f9e 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b94db34a07775445aa3066f04b4b3e1 3 | folderAsset: yes 4 | timeCreated: 1500566935 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Dialog.json: -------------------------------------------------------------------------------- 1 | { 2 | "Merchant": [ 3 | "来买点什么吧", 4 | "不过现在货物紧张,所以能卖的东西比较少咯" 5 | ], 6 | "Recycler": [ 7 | "回收各种道具,有多少要多少" 8 | ] 9 | } -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Dialog.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f5005f2667603a147b043e26d181c420 3 | timeCreated: 1504008122 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/EnemyEquip.json: -------------------------------------------------------------------------------- 1 | { 2 | "野猪武器": { 3 | "Type": 3, 4 | "IconPath": "Icons\\Weapon\\Katana", 5 | "Name": "野猪武器", 6 | "Detail": "", 7 | "CanSale": false, 8 | "Price": 0, 9 | "SalePrice": 1, 10 | "HP": 0, 11 | "SP": 0, 12 | "Attack": 10, 13 | "Defend": 0, 14 | "Crit": 0, 15 | "Speed": 0 16 | }, 17 | "野猪防具": { 18 | "Type": 2, 19 | "IconPath": "Icons\\Cloth\\Cloth", 20 | "Name": "野猪防具", 21 | "Detail": "", 22 | "CanSale": false, 23 | "Price": 0, 24 | "SalePrice": 1, 25 | "HP": 200, 26 | "SP": 0, 27 | "Attack": 0, 28 | "Defend": 0, 29 | "Crit": 0, 30 | "Speed": 0 31 | } 32 | } -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/EnemyEquip.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf892e5c8207d5d4b9b42a35fc3786f2 3 | timeCreated: 1500784200 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Equip.json: -------------------------------------------------------------------------------- 1 | { 2 | "太刀": { 3 | "Type": 3, 4 | "IconPath": "Icons\\Weapon\\Katana", 5 | "Name": "太刀", 6 | "Detail": "精心加工而成的太刀,用各种方式斩杀怪物都不会有问题", 7 | "CanSale": false, 8 | "Price": 60, 9 | "SalePrice": 30, 10 | "HP": 0, 11 | "SP": 0, 12 | "Attack": 20, 13 | "Defend": 0, 14 | "Crit": 0, 15 | "Speed": 0 16 | } 17 | } -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Equip.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb2fcc712e446b7439f679cdfa60fcba 3 | timeCreated: 1500645956 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Language_CN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Battle": "战斗", 3 | "Pack": "背包", 4 | "Store": "商店", 5 | "Make": "打造", 6 | "Setting": "设置", 7 | "Help": "帮助", 8 | "Exit": "退出", 9 | "Equip": "装备", 10 | "Prop": "道具", 11 | "Buy": "购买", 12 | "Sale": "出售" 13 | } -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Language_CN.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4a36c18362ec9e0499e26fdc6a7a4cec 3 | timeCreated: 1501052227 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Language_EN.json: -------------------------------------------------------------------------------- 1 | { 2 | "Battle": "Battle", 3 | "Pack": "Pack" 4 | } -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Language_EN.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 12259820d2379cf44bb20e44ad9e3c2c 3 | timeCreated: 1501054119 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Prop.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "Id": 0, 4 | "Type": 0, 5 | "MaxNum": 10, 6 | "IconPath": "Icons\\Prop\\RedMedicine", 7 | "Name": "红血瓶", 8 | "Detail": "可以携带,喝下后能够回复少量的HP。", 9 | "CanSale": true, 10 | "Price": 50, 11 | "SalePrice": 25, 12 | "HP": 50, 13 | "SP": 0, 14 | "Attack": 0, 15 | "Defend": 0, 16 | "Crit": 0, 17 | "Speed": 0 18 | } 19 | ] -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Prop.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 053cefc74d849f84892bee9f3e40478a 3 | timeCreated: 1500646351 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Tasks.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "TaskName": "讨伐石巨人", 4 | "TaskPlace": "神庙", 5 | "TaskAward": 100 6 | } 7 | ] -------------------------------------------------------------------------------- /Assets/StreamingAssets/DataBase/Tasks.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 29ceda7003945eb4796fef113858e5c1 3 | timeCreated: 1504489802 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/Log.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d24c1d3e56f8984d891ab0052af77e7 3 | folderAsset: yes 4 | timeCreated: 1501156312 5 | licenseType: Pro 6 | DefaultImporter: 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/Log/Game_Log.txt: -------------------------------------------------------------------------------- 1 | Develop|8:18 PM| 角色初始化完毕 2 | 3 | Develop|8:19 PM| 角色初始化完毕 4 | 5 | Develop|8:26 PM| 角色初始化完毕 6 | 7 | -------------------------------------------------------------------------------- /Assets/StreamingAssets/Log/Game_Log.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d8c951aecb0c55545adb3d00096144cb 3 | timeCreated: 1501157947 4 | licenseType: Pro 5 | DefaultImporter: 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Doc/6.相机控制.md: -------------------------------------------------------------------------------- 1 | ## 相机控制 2 | ##### CameraCtrl 3 | 简介:相机控制系统 4 | 作用:控制游戏中的相机 5 | 使用:我们为Camera制定了一个Prefab,默认是4层结构。 6 | 顶层root结点一般是和transform同步的跟随结点,这个transform会根据具体情况计算出来 7 | 根据不同项目的实现,可能会挂载AutoCam,FreeLookCam等具体的相机脚本 8 | 次层pivot结点负责一些偏移 9 | 然后的MainCamera结点,是Camera实际所在的位置,挂载该脚本 10 | 最后是PreCamera结点,负责显示一些前置特效之类的 11 | 补充:TODO:如果需要一些特殊效果,可以添加DoTween之类的插件 12 | 具体Camera实现结构需改进 13 | 属性-_instance,mainCamera,shakeComponent,AutoCam 14 | 15 | 方法-ShakeMainCamera,DialogCamera,SetAreaLimit,EnableAutoCam 16 | 17 | 18 | 相关技术-DoTween,震屏,相机跟随,插值 19 | 20 | #### 震屏 21 | ##### ShakeObject : MonoBehaviour 22 | 23 | 震动物体,主要用于Camera震屏 24 | 25 | 属性-startTime,directionStrength,speed,duation 26 | 27 | 震动的原理是设置一个AnimationCurve,FixedUpdate中更新物体的position 28 | 29 | curve.Evaluate获得对应时间下的动画曲线 30 | 31 | #### 相机跟随 32 | ##### AutoCam : MonoBehaviour 33 | 属性-m_AutoTarget,m_TargetEnemy,playerTransform,enemyTransform 34 | 35 | 提供了3种Update类型,经测试FixedUpdate时效果最好,能平滑不卡的Lerp移动Camera 36 | 37 | 能同时跟随Player和Enemy两个Transform,并动态地调整距离(根据一个公式计算)。在Target为null或activeFalse时均重新查找 38 | 39 | #### 限制Camera移动范围 40 | 当Player移动出一定范围时,Camera不跟着移动,同时用Collider限制Player移动出Camera,范围是一个矩形,x,-x,z,-z,并用Clamp限制。 41 | 42 | #### 遮挡半透查询控制器 43 | ##### TransparentCam : MonoBehaviour 44 | 需要支持透明通道的Shader 45 | 46 | 通过射线得到碰撞模型的材质,然后修改材质的透明度 47 | 48 | 属性-targetObject,materials,sharedMats,transparentLayer,Dictionary transparentDic,List clearList 49 | 50 | 方法-在Update中调用以下3个方法 51 | - UpdateTransparentObject 每帧对字典中每个材质做渐变处理(控制Shader属性) 52 | - UpdateRayCastHit 相机发出射线,对碰撞到的物体的子物体所有renderer做Shader替换 53 | - RemoveUnuseTransparent 将不再是遮挡半透的材质恢复 54 | 55 | 对每一个Renderer,Shader替换时将该Renderer的信息存到字典中,再替换materials的Shader,换回时用sharedMats还原之前的materials 56 | 57 | 这里选择Transparent/Bumped Diffuse作为透明Shader,注意要把这个Shader打包进来 58 | 59 | #### material与sharedMaterial的区别 60 | 从效率上来说最好用sharedMaterial,它是共享材质,无论如何操作材质的属性(如更换颜色或者更换shader),内存中只会占用一份。 61 | 62 | 用material的话,每次更换属性的时候Unity就会自动new一份新的material作用于它。直到Application.LoadLevel() 或者Resources.UnloadUnusedAssets();的时候才会施放内存。所以material就有可能会造成内存泄漏 63 | 64 | 切换场景时会释放所以一般不要紧 65 | -------------------------------------------------------------------------------- /Doc/基于Unity3D的游戏框架设计与实现-论文PPT.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sols11/SFramework/2aecb34fd5adcad0c572c821706fc70b91397ff6/Doc/基于Unity3D的游戏框架设计与实现-论文PPT.pptx -------------------------------------------------------------------------------- /Logs/Packages-Update.log: -------------------------------------------------------------------------------- 1 | 2 | === Sat Mar 2 16:12:41 2019 3 | 4 | Packages were changed. 5 | Update Mode: mergeDefaultDependencies 6 | 7 | The following packages were added: 8 | com.unity.analytics@3.2.2 9 | com.unity.purchasing@2.0.3 10 | com.unity.ads@2.0.8 11 | com.unity.textmeshpro@1.3.0 12 | com.unity.package-manager-ui@2.0.3 13 | com.unity.collab-proxy@1.2.15 14 | com.unity.modules.ai@1.0.0 15 | com.unity.modules.animation@1.0.0 16 | com.unity.modules.assetbundle@1.0.0 17 | com.unity.modules.audio@1.0.0 18 | com.unity.modules.cloth@1.0.0 19 | com.unity.modules.director@1.0.0 20 | com.unity.modules.imageconversion@1.0.0 21 | com.unity.modules.imgui@1.0.0 22 | com.unity.modules.jsonserialize@1.0.0 23 | com.unity.modules.particlesystem@1.0.0 24 | com.unity.modules.physics@1.0.0 25 | com.unity.modules.physics2d@1.0.0 26 | com.unity.modules.screencapture@1.0.0 27 | com.unity.modules.terrain@1.0.0 28 | com.unity.modules.terrainphysics@1.0.0 29 | com.unity.modules.tilemap@1.0.0 30 | com.unity.modules.ui@1.0.0 31 | com.unity.modules.uielements@1.0.0 32 | com.unity.modules.umbra@1.0.0 33 | com.unity.modules.unityanalytics@1.0.0 34 | com.unity.modules.unitywebrequest@1.0.0 35 | com.unity.modules.unitywebrequestassetbundle@1.0.0 36 | com.unity.modules.unitywebrequestaudio@1.0.0 37 | com.unity.modules.unitywebrequesttexture@1.0.0 38 | com.unity.modules.unitywebrequestwww@1.0.0 39 | com.unity.modules.vehicles@1.0.0 40 | com.unity.modules.video@1.0.0 41 | com.unity.modules.vr@1.0.0 42 | com.unity.modules.wind@1.0.0 43 | com.unity.modules.xr@1.0.0 44 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ads": "2.0.8", 4 | "com.unity.analytics": "3.2.2", 5 | "com.unity.collab-proxy": "1.2.15", 6 | "com.unity.package-manager-ui": "2.0.3", 7 | "com.unity.purchasing": "2.0.3", 8 | "com.unity.textmeshpro": "1.3.0", 9 | "com.unity.modules.ai": "1.0.0", 10 | "com.unity.modules.animation": "1.0.0", 11 | "com.unity.modules.assetbundle": "1.0.0", 12 | "com.unity.modules.audio": "1.0.0", 13 | "com.unity.modules.cloth": "1.0.0", 14 | "com.unity.modules.director": "1.0.0", 15 | "com.unity.modules.imageconversion": "1.0.0", 16 | "com.unity.modules.imgui": "1.0.0", 17 | "com.unity.modules.jsonserialize": "1.0.0", 18 | "com.unity.modules.particlesystem": "1.0.0", 19 | "com.unity.modules.physics": "1.0.0", 20 | "com.unity.modules.physics2d": "1.0.0", 21 | "com.unity.modules.screencapture": "1.0.0", 22 | "com.unity.modules.terrain": "1.0.0", 23 | "com.unity.modules.terrainphysics": "1.0.0", 24 | "com.unity.modules.tilemap": "1.0.0", 25 | "com.unity.modules.ui": "1.0.0", 26 | "com.unity.modules.uielements": "1.0.0", 27 | "com.unity.modules.umbra": "1.0.0", 28 | "com.unity.modules.unityanalytics": "1.0.0", 29 | "com.unity.modules.unitywebrequest": "1.0.0", 30 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 31 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 32 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 33 | "com.unity.modules.unitywebrequestwww": "1.0.0", 34 | "com.unity.modules.vehicles": "1.0.0", 35 | "com.unity.modules.video": "1.0.0", 36 | "com.unity.modules.vr": "1.0.0", 37 | "com.unity.modules.wind": "1.0.0", 38 | "com.unity.modules.xr": "1.0.0" 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_EnablePCM: 1 18 | m_LayerCollisionMatrix: ffc7ffffffc7ffffffc7ffffffffffffffc7ffffffc7ffffffffffffffffffffff46ffffffa7ffffff97ffffc800feffc804feffc802feffffc1ffffff46ffffffc7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 19 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 0 9 | path: 10 | guid: 00000000000000000000000000000000 11 | - enabled: 1 12 | path: Assets/Scenes/Start.unity 13 | guid: 16fd83b5b477bbe4488dae25dfbf8dfe 14 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 39 | m_PreloadedShaders: [] 40 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 41 | type: 0} 42 | m_CustomRenderPipeline: {fileID: 0} 43 | m_TransparencySortMode: 0 44 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 45 | m_DefaultRenderingPath: 1 46 | m_DefaultMobileRenderingPath: 1 47 | m_TierSettings: [] 48 | m_LightmapStripping: 0 49 | m_FogStripping: 0 50 | m_InstancingStripping: 0 51 | m_LightmapKeepPlain: 1 52 | m_LightmapKeepDirCombined: 1 53 | m_LightmapKeepDynamicPlain: 1 54 | m_LightmapKeepDynamicDirCombined: 1 55 | m_LightmapKeepShadowMask: 1 56 | m_LightmapKeepSubtractive: 1 57 | m_FogKeepLinear: 1 58 | m_FogKeepExp: 1 59 | m_FogKeepExp2: 1 60 | m_AlbedoSwatchInfos: [] 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 0 63 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_ReuseCollisionCallbacks: 1 28 | m_AutoSyncTransforms: 0 29 | m_AlwaysShowColliders: 0 30 | m_ShowColliderSleep: 1 31 | m_ShowColliderContacts: 0 32 | m_ShowColliderAABB: 0 33 | m_ContactArrowScale: 0.2 34 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 35 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 36 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 37 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 38 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 39 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: 7 | - type: 8 | m_NativeTypeID: 108 9 | m_ManagedTypePPtr: {fileID: 0} 10 | m_ManagedTypeFallback: 11 | defaultPresets: 12 | - m_Preset: {fileID: 2655988077585873504, guid: c1cf8506f04ef2c4a88b64b6c4202eea, 13 | type: 2} 14 | - type: 15 | m_NativeTypeID: 1020 16 | m_ManagedTypePPtr: {fileID: 0} 17 | m_ManagedTypeFallback: 18 | defaultPresets: 19 | - m_Preset: {fileID: 2655988077585873504, guid: 0cd792cc87e492d43b4e95b205fc5cc6, 20 | type: 2} 21 | - type: 22 | m_NativeTypeID: 1006 23 | m_ManagedTypePPtr: {fileID: 0} 24 | m_ManagedTypeFallback: 25 | defaultPresets: 26 | - m_Preset: {fileID: 2655988077585873504, guid: 7a99f8aa944efe94cb9bd74562b7d5f9, 27 | type: 2} 28 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 5.6.6f2 2 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: 7 | - Canvas 8 | - UICamera 9 | - Enemy 10 | - Environment 11 | layers: 12 | - Default 13 | - TransparentFX 14 | - Ignore Raycast 15 | - 16 | - Water 17 | - UI 18 | - 19 | - 20 | - Ground 21 | - Player 22 | - Enemy 23 | - Effect 24 | - PlayerWeapon 25 | - EnemyWeapon 26 | - Without 27 | - Wall 28 | - PostProcessing 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | - 41 | - 42 | - 43 | - 44 | m_SortingLayers: 45 | - name: Default 46 | uniqueID: 0 47 | locked: 0 48 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 0 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 1 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_RenderPipeSettingsPath: 10 | m_FixedTimeStep: 0.016666668 11 | m_MaxDeltaTime: 0.05 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SFramework 2 | 基于Unity引擎的万能游戏框架 Unity-Framework 3 | 4 | - 独立设计开发的原创游戏框架,具备良好的可扩展性 5 | - 控制游戏生命周期,框架尽量不继承Monobehavior 6 | - 基于单例模式,外观模式,桥接模式等设计模式 7 | - 可使用PhysX物理引擎,动画帧事件等基于Monobehavior的功能 8 | - 代码追求精简高效,核心代码仅5000+行 9 | - 规范的命名规则,在各脚本的文件头可方便地查阅说明文档 10 | 11 | ![游戏循环](https://img2018.cnblogs.com/blog/1334897/201905/1334897-20190512160845711-812392312.png) 12 | 13 | ## 项目工程结构 14 | 15 | Plugins:插件 16 | 17 | Repo:资源 18 | 19 | Resources:热加载资源 20 | 21 | Scenes:场景 22 | 23 | Scripts:脚本 24 | 25 | StreamingAssets:热加载配置文件 26 | 27 | ## 命名规范 28 | 29 | 类名、方法、属性 大写开头 30 | 31 | 字段名、参数、局部变量 小写开头 32 | 33 | 每个脚本文件头需要填写: 34 | ```c# 35 | /*---------------------------------------------------------------------------- 36 | Author: 37 | Anotts 38 | Date: 39 | 2017/08/01 40 | Description: 41 | 简介: 42 | 作用: 43 | 使用: 44 | 补充: 45 | History: 46 | ----------------------------------------------------------------------------*/ 47 | ``` 48 | 49 | 现已将各脚本的说明写入文件头,可直接查阅学习使用。 50 | 51 | ## 安装集成 52 | 53 | 建议直接以此项目为基础进行开发。 54 | 55 | 如果要集成到其他项目,可以直接Clone到项目目录下,也可以通过安装unitypackage包的形式集成。 56 | 57 | 尽量不要让框架本身和项目产生耦合,框架的命名空间是SFramework,项目的命名空间默认是ProjectScript,需要区分开。 58 | 59 | 项目开发时往往可能需要对框架进行修改,这时只需要开一个branch,将修改提交到branch,最后pull request到框架原来的Git项目(即SFramewok)即可。 60 | 61 | ## 快速上手 62 | 63 | 可从Start场景开始开发,可在Doc文件夹中查看技术文档。 64 | 65 | 1. 添加场景只需按SceneStateController类的说明来做 66 | 2. 添加角色只需按角色架构文档说明来做 67 | 3. 添加UI只需按UIManager类的说明来做 68 | 4. 添加音乐音效只需按AudioMgr类的说明来做 69 | 5. 存档设置只需按GameDataMgr类的说明来做 70 | 6. 添加系统只需按GameMainProgram类的说明来做 71 | 7. 以此类推,待补充…… 72 | 73 | ## 开源协议 74 | 75 | GNU General Public License v3.0 (GPL) 76 | --------------------------------------------------------------------------------