This commit is contained in:
taosuqi 2025-10-14 21:15:18 +08:00
parent 23042c3872
commit beced95547
93 changed files with 22877 additions and 764 deletions

View File

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

View File

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

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 858a0560c766d2945b4d81b48c306446
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,252 @@
using UnityEngine;
using UnityEditor;
using UnityEditor.AnimatedValues;
[CustomEditor(typeof(PrometeoCarController))]
[System.Serializable]
public class PrometeoEditor : Editor{
enum displayFieldType {DisplayAsAutomaticFields, DisplayAsCustomizableGUIFields}
displayFieldType DisplayFieldType;
private PrometeoCarController prometeo;
private SerializedObject SO;
//
//
//CAR SETUP
//
//
private SerializedProperty maxSpeed;
private SerializedProperty maxReverseSpeed;
private SerializedProperty accelerationMultiplier;
private SerializedProperty maxSteeringAngle;
private SerializedProperty steeringSpeed;
private SerializedProperty brakeForce;
private SerializedProperty decelerationMultiplier;
private SerializedProperty handbrakeDriftMultiplier;
private SerializedProperty bodyMassCenter;
//
//
//WHEELS VARIABLES
//
//
private SerializedProperty frontLeftMesh;
private SerializedProperty frontLeftCollider;
private SerializedProperty frontRightMesh;
private SerializedProperty frontRightCollider;
private SerializedProperty rearLeftMesh;
private SerializedProperty rearLeftCollider;
private SerializedProperty rearRightMesh;
private SerializedProperty rearRightCollider;
//
//
//PARTICLE SYSTEMS' VARIABLES
//
//
private SerializedProperty useEffects;
private SerializedProperty RLWParticleSystem;
private SerializedProperty RRWParticleSystem;
private SerializedProperty RLWTireSkid;
private SerializedProperty RRWTireSkid;
//
//
//SPEED TEXT (UI) VARIABLES
//
//
private SerializedProperty useUI;
private SerializedProperty carSpeedText;
//
//
//SPEED TEXT (UI) VARIABLES
//
//
private SerializedProperty useSounds;
private SerializedProperty carEngineSound;
private SerializedProperty tireScreechSound;
//
//
//TOUCH CONTROLS VARIABLES
//
//
private SerializedProperty useTouchControls;
private SerializedProperty throttleButton;
private SerializedProperty reverseButton;
private SerializedProperty turnRightButton;
private SerializedProperty turnLeftButton;
private SerializedProperty handbrakeButton;
private void OnEnable(){
prometeo = (PrometeoCarController)target;
SO = new SerializedObject(target);
maxSpeed = SO.FindProperty("maxSpeed");
maxReverseSpeed = SO.FindProperty("maxReverseSpeed");
accelerationMultiplier = SO.FindProperty("accelerationMultiplier");
maxSteeringAngle = SO.FindProperty("maxSteeringAngle");
steeringSpeed = SO.FindProperty("steeringSpeed");
brakeForce = SO.FindProperty("brakeForce");
decelerationMultiplier = SO.FindProperty("decelerationMultiplier");
handbrakeDriftMultiplier = SO.FindProperty("handbrakeDriftMultiplier");
bodyMassCenter = SO.FindProperty("bodyMassCenter");
frontLeftMesh = SO.FindProperty("frontLeftMesh");
frontLeftCollider = SO.FindProperty("frontLeftCollider");
frontRightMesh = SO.FindProperty("frontRightMesh");
frontRightCollider = SO.FindProperty("frontRightCollider");
rearLeftMesh = SO.FindProperty("rearLeftMesh");
rearLeftCollider = SO.FindProperty("rearLeftCollider");
rearRightMesh = SO.FindProperty("rearRightMesh");
rearRightCollider = SO.FindProperty("rearRightCollider");
useEffects = SO.FindProperty("useEffects");
RLWParticleSystem = SO.FindProperty("RLWParticleSystem");
RRWParticleSystem = SO.FindProperty("RRWParticleSystem");
RLWTireSkid = SO.FindProperty("RLWTireSkid");
RRWTireSkid = SO.FindProperty("RRWTireSkid");
useUI = SO.FindProperty("useUI");
carSpeedText = SO.FindProperty("carSpeedText");
useSounds = SO.FindProperty("useSounds");
carEngineSound = SO.FindProperty("carEngineSound");
tireScreechSound = SO.FindProperty("tireScreechSound");
useTouchControls = SO.FindProperty("useTouchControls");
throttleButton = SO.FindProperty("throttleButton");
reverseButton = SO.FindProperty("reverseButton");
turnRightButton = SO.FindProperty("turnRightButton");
turnLeftButton = SO.FindProperty("turnLeftButton");
handbrakeButton = SO.FindProperty("handbrakeButton");
}
public override void OnInspectorGUI(){
SO.Update();
GUILayout.Space(25);
GUILayout.Label("CAR SETUP", EditorStyles.boldLabel);
GUILayout.Space(10);
//
//
//CAR SETUP
//
//
//
maxSpeed.intValue = EditorGUILayout.IntSlider("Max Speed:", maxSpeed.intValue, 20, 190);
maxReverseSpeed.intValue = EditorGUILayout.IntSlider("Max Reverse Speed:", maxReverseSpeed.intValue, 10, 120);
accelerationMultiplier.intValue = EditorGUILayout.IntSlider("Acceleration Multiplier:", accelerationMultiplier.intValue, 1, 10);
maxSteeringAngle.intValue = EditorGUILayout.IntSlider("Max Steering Angle:", maxSteeringAngle.intValue, 10, 45);
steeringSpeed.floatValue = EditorGUILayout.Slider("Steering Speed:", steeringSpeed.floatValue, 0.1f, 1f);
brakeForce.intValue = EditorGUILayout.IntSlider("Brake Force:", brakeForce.intValue, 100, 600);
decelerationMultiplier.intValue = EditorGUILayout.IntSlider("Deceleration Multiplier:", decelerationMultiplier.intValue, 1, 10);
handbrakeDriftMultiplier.intValue = EditorGUILayout.IntSlider("Drift Multiplier:", handbrakeDriftMultiplier.intValue, 1, 10);
EditorGUILayout.PropertyField(bodyMassCenter, new GUIContent("Mass Center of Car: "));
//
//
//WHEELS
//
//
GUILayout.Space(25);
GUILayout.Label("WHEELS", EditorStyles.boldLabel);
GUILayout.Space(10);
EditorGUILayout.PropertyField(frontLeftMesh, new GUIContent("Front Left Mesh: "));
EditorGUILayout.PropertyField(frontLeftCollider, new GUIContent("Front Left Collider: "));
EditorGUILayout.PropertyField(frontRightMesh, new GUIContent("Front Right Mesh: "));
EditorGUILayout.PropertyField(frontRightCollider, new GUIContent("Front Right Collider: "));
EditorGUILayout.PropertyField(rearLeftMesh, new GUIContent("Rear Left Mesh: "));
EditorGUILayout.PropertyField(rearLeftCollider, new GUIContent("Rear Left Collider: "));
EditorGUILayout.PropertyField(rearRightMesh, new GUIContent("Rear Right Mesh: "));
EditorGUILayout.PropertyField(rearRightCollider, new GUIContent("Rear Right Collider: "));
//
//
//EFFECTS
//
//
GUILayout.Space(25);
GUILayout.Label("EFFECTS", EditorStyles.boldLabel);
GUILayout.Space(10);
useEffects.boolValue = EditorGUILayout.BeginToggleGroup("Use effects (particle systems)?", useEffects.boolValue);
GUILayout.Space(10);
EditorGUILayout.PropertyField(RLWParticleSystem, new GUIContent("Rear Left Particle System: "));
EditorGUILayout.PropertyField(RRWParticleSystem, new GUIContent("Rear Right Particle System: "));
EditorGUILayout.PropertyField(RLWTireSkid, new GUIContent("Rear Left Trail Renderer: "));
EditorGUILayout.PropertyField(RRWTireSkid, new GUIContent("Rear Right Trail Renderer: "));
EditorGUILayout.EndToggleGroup();
//
//
//UI
//
//
GUILayout.Space(25);
GUILayout.Label("UI", EditorStyles.boldLabel);
GUILayout.Space(10);
useUI.boolValue = EditorGUILayout.BeginToggleGroup("Use UI (Speed text)?", useUI.boolValue);
GUILayout.Space(10);
EditorGUILayout.PropertyField(carSpeedText, new GUIContent("Speed Text (UI): "));
EditorGUILayout.EndToggleGroup();
//
//
//SOUNDS
//
//
GUILayout.Space(25);
GUILayout.Label("SOUNDS", EditorStyles.boldLabel);
GUILayout.Space(10);
useSounds.boolValue = EditorGUILayout.BeginToggleGroup("Use sounds (car sounds)?", useSounds.boolValue);
GUILayout.Space(10);
EditorGUILayout.PropertyField(carEngineSound, new GUIContent("Car Engine Sound: "));
EditorGUILayout.PropertyField(tireScreechSound, new GUIContent("Tire Screech Sound: "));
EditorGUILayout.EndToggleGroup();
//
//
//TOUCH CONTROLS
//
//
GUILayout.Space(25);
GUILayout.Label("TOUCH CONTROLS", EditorStyles.boldLabel);
GUILayout.Space(10);
useTouchControls.boolValue = EditorGUILayout.BeginToggleGroup("Use touch controls (mobile devices)?", useTouchControls.boolValue);
GUILayout.Space(10);
EditorGUILayout.PropertyField(throttleButton, new GUIContent("Throttle Button: "));
EditorGUILayout.PropertyField(reverseButton, new GUIContent("Brakes/Reverse Button: "));
EditorGUILayout.PropertyField(turnLeftButton, new GUIContent("Turn Left Button: "));
EditorGUILayout.PropertyField(turnRightButton, new GUIContent("Turn Right Button: "));
EditorGUILayout.PropertyField(handbrakeButton, new GUIContent("Handbrake Button: "));
EditorGUILayout.EndToggleGroup();
//END
GUILayout.Space(10);
SO.ApplyModifiedProperties();
}
}

View File

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

View File

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

View File

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

View File

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

View File

@ -0,0 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Sphere_Material
m_Shader: {fileID: 10752, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5cf2f8f7b80b88e4387cd662a513a231, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

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

View File

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

View File

@ -0,0 +1,96 @@
fileFormatVersion: 2
guid: 7f2eb32a90aace349adccd6efbc6bd9b
ModelImporter:
serializedVersion: 19300
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ddf4ea2625767fd4bb4153e7e4009ad5
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

View File

@ -0,0 +1,131 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7344874181333496819
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 7344874181333496817}
- component: {fileID: 7344874181333496816}
m_Layer: 0
m_Name: TireSkid
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &7344874181333496817
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7344874181333496819}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!96 &7344874181333496816
TrailRenderer:
serializedVersion: 2
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7344874181333496819}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 0
m_LightProbeUsage: 0
m_ReflectionProbeUsage: 0
m_RayTracingMode: 0
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Time: 10
m_Parameters:
serializedVersion: 3
widthMultiplier: 0.15
widthCurve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
colorGradient:
serializedVersion: 2
key0: {r: 0, g: 0, b: 0, a: 1}
key1: {r: 0.18867922, g: 0.18867922, b: 0.18867922, a: 0.5882353}
key2: {r: 0, g: 0, b: 0, a: 0}
key3: {r: 0, g: 0, b: 0, a: 0}
key4: {r: 0, g: 0, b: 0, a: 0}
key5: {r: 0, g: 0, b: 0, a: 0}
key6: {r: 0, g: 0, b: 0, a: 0}
key7: {r: 0, g: 0, b: 0, a: 0}
ctime0: 0
ctime1: 65535
ctime2: 0
ctime3: 0
ctime4: 0
ctime5: 0
ctime6: 0
ctime7: 0
atime0: 0
atime1: 58982
atime2: 62258
atime3: 65535
atime4: 0
atime5: 0
atime6: 0
atime7: 0
m_Mode: 0
m_NumColorKeys: 2
m_NumAlphaKeys: 4
numCornerVertices: 0
numCapVertices: 0
alignment: 1
textureMode: 1
shadowBias: 1
generateLightingData: 0
m_MinVertexDistance: 0.1
m_Autodestruct: 0
m_Emitting: 1

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ab4ea67cd9337c341af0bd7182c60f92
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,93 @@
Copyright (c) 2014, Indian Type Foundry (info@indiantypefoundry.com).
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------
PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).
"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
TERMINATION
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

View File

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

View File

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: eda16a574f5cf654b832867016f588f6
TrueTypeFontImporter:
externalObjects: {}
serializedVersion: 4
fontSize: 16
forceTextureCase: -2
characterSpacing: 0
characterPadding: 1
includeFontData: 1
fontName: Teko
fontNames:
- Teko
fallbackFontReferences: []
customCharacters:
fontRenderingMode: 0
ascentCalculationMode: 1
useLegacyBoundsCalculation: 0
shouldRoundAdvanceValue: 1
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PCC_Col_Mat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 2800000, guid: 5cf2f8f7b80b88e4387cd662a513a231, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5cf2f8f7b80b88e4387cd662a513a231, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0.078431375, g: 0.078431375, b: 0.078431375, a: 1}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 2d997c6d92b71154e8dee74617594aea
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PCC_Light_Mat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _EMISSION
m_LightmapFlags: 2
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 2800000, guid: 5cf2f8f7b80b88e4387cd662a513a231, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5cf2f8f7b80b88e4387cd662a513a231, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 1
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 1
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 1, g: 1, b: 1, a: 1}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 975b4d94cd15da34d833f64957a8479a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!21 &2100000
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: PCC_ParkingZone_Mat
m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0}
m_ShaderKeywords: _GLOSSYREFLECTIONS_OFF _SPECULARHIGHLIGHTS_OFF
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailAlbedoMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailMask:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _DetailNormalMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _EmissionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:
m_Texture: {fileID: 2800000, guid: 5cf2f8f7b80b88e4387cd662a513a231, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MetallicGlossMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _OcclusionMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ParallaxMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats:
- _BumpScale: 1
- _Cutoff: 0.5
- _DetailNormalMapScale: 1
- _DstBlend: 0
- _GlossMapScale: 1
- _Glossiness: 0
- _GlossyReflections: 0
- _Metallic: 0
- _Mode: 0
- _OcclusionStrength: 1
- _Parallax: 0.02
- _SmoothnessTextureChannel: 0
- _SpecularHighlights: 0
- _SrcBlend: 1
- _UVSec: 0
- _ZWrite: 1
m_Colors:
- _Color: {r: 1, g: 1, b: 1, a: 1}
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6c7e85d89b2e5e34a93e7f83facefcaa
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 2100000
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,14 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!134 &13400000
PhysicMaterial:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Walls
dynamicFriction: 1
staticFriction: 1
bounciness: 0
frictionCombine: 0
bounceCombine: 0

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b36e29e623ce9b5468984c4324503438
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 13400000
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,97 @@
fileFormatVersion: 2
guid: 10cd069355822f448bbafc37850ebb2d
ModelImporter:
serializedVersion: 19301
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,97 @@
fileFormatVersion: 2
guid: 7d585b781e841594385783dda6f7f9a4
ModelImporter:
serializedVersion: 19301
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,97 @@
fileFormatVersion: 2
guid: 84cbd975f151bf045b9171438f6dfa3e
ModelImporter:
serializedVersion: 19301
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,10 @@
Do you need more cars? Perhaps you could find something
useful for your project:
ARCADE: ULTIMATE PACK DRIVE: Low Poly Cars SHADED: Retro Cars
An ever growing vehicle pack A complete set of racing cars A complete set of colorful
with over 100 unique models. modeled in low-poly style. vehicles with cartoon style.
Includes racing cars, trucks, Includes rally, muscle and Made with love and rock n' roll.
planes and more. super cars.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: a73452f46f5b05349bf16ceff14656da
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,138 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4597129196982652262
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4597129196982652263}
- component: {fileID: 4597129196982652258}
- component: {fileID: 4597129196982652261}
- component: {fileID: 4597129196982652256}
- component: {fileID: 4597129196982652260}
m_Layer: 5
m_Name: Button Template
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4597129196982652263
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4597129196982652262}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.8, y: 0.8, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 150, y: 150}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &4597129196982652258
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4597129196982652262}
m_CullTransparentMesh: 1
--- !u!114 &4597129196982652261
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4597129196982652262}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 299ba41030d7a36409e6380e9317c890, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &4597129196982652256
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4597129196982652262}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Delegates:
- eventID: 2
callback:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 4597129196982652260}
m_TargetAssemblyTypeName: PrometeoTouchInput, Assembly-CSharp
m_MethodName: ButtonDown
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
- eventID: 3
callback:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 4597129196982652260}
m_TargetAssemblyTypeName: PrometeoTouchInput, Assembly-CSharp
m_MethodName: ButtonUp
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!114 &4597129196982652260
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4597129196982652262}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4b7408ad19eb3ad44a35af48d0d2294b, type: 3}
m_Name:
m_EditorClassIdentifier:
changeScaleOnPressed: 0
buttonPressed: 0

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: ba7adce0955ba9047b407c0d6b28fdd1
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 79d0ca8b77e301442afdb49f102e8aed
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: d05c07244ed6a3740be3bdad186521e6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 136749ef7a3080548b1664e996c901e6
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,10 @@
Do you need more cars? Perhaps you could find something
useful for your project:
ARCADE: ULTIMATE PACK DRIVE: Low Poly Cars SHADED: Retro Cars
An ever growing vehicle pack A complete set of racing cars A complete set of colorful
with over 100 unique models. modeled in low-poly style. vehicles with cartoon style.
Includes racing cars, trucks, Includes rally, muscle and Made with love and rock n' roll.
planes and more. super cars.

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 83e25f10822c92148aebec84a4eac3d0
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

@ -0,0 +1,35 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraFollow : MonoBehaviour {
public Transform carTransform;
[Range(1, 10)]
public float followSpeed = 2;
[Range(1, 10)]
public float lookSpeed = 5;
Vector3 initialCameraPosition;
Vector3 initialCarPosition;
Vector3 absoluteInitCameraPosition;
void Start(){
initialCameraPosition = gameObject.transform.position;
initialCarPosition = carTransform.position;
absoluteInitCameraPosition = initialCameraPosition - initialCarPosition;
}
void FixedUpdate()
{
//Look at car
Vector3 _lookDirection = (new Vector3(carTransform.position.x, carTransform.position.y, carTransform.position.z)) - transform.position;
Quaternion _rot = Quaternion.LookRotation(_lookDirection, Vector3.up);
transform.rotation = Quaternion.Lerp(transform.rotation, _rot, lookSpeed * Time.deltaTime);
//Move to car
Vector3 _targetPos = absoluteInitCameraPosition + carTransform.transform.position;
transform.position = Vector3.Lerp(transform.position, _targetPos, followSpeed * Time.deltaTime);
}
}

View File

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

View File

@ -0,0 +1,776 @@
/*
MESSAGE FROM CREATOR: This script was coded by Mena. You can use it in your games either these are commercial or
personal projects. You can even add or remove functions as you wish. However, you cannot sell copies of this
script by itself, since it is originally distributed as a free product.
I wish you the best for your project. Good luck!
P.S: If you need more cars, you can check my other vehicle assets on the Unity Asset Store, perhaps you could find
something useful for your game. Best regards, Mena.
*/
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class PrometeoCarController : MonoBehaviour
{
//CAR SETUP
[Space(20)]
//[Header("CAR SETUP")]
[Space(10)]
[Range(20, 190)]
public int maxSpeed = 90; //The maximum speed that the car can reach in km/h.
[Range(10, 120)]
public int maxReverseSpeed = 45; //The maximum speed that the car can reach while going on reverse in km/h.
[Range(1, 10)]
public int accelerationMultiplier = 2; // How fast the car can accelerate. 1 is a slow acceleration and 10 is the fastest.
[Space(10)]
[Range(10, 45)]
public int maxSteeringAngle = 27; // The maximum angle that the tires can reach while rotating the steering wheel.
[Range(0.1f, 1f)]
public float steeringSpeed = 0.5f; // How fast the steering wheel turns.
[Space(10)]
[Range(100, 600)]
public int brakeForce = 350; // The strength of the wheel brakes.
[Range(1, 10)]
public int decelerationMultiplier = 2; // How fast the car decelerates when the user is not using the throttle.
[Range(1, 10)]
public int handbrakeDriftMultiplier = 5; // How much grip the car loses when the user hit the handbrake.
[Space(10)]
public Vector3 bodyMassCenter; // This is a vector that contains the center of mass of the car. I recommend to set this value
// in the points x = 0 and z = 0 of your car. You can select the value that you want in the y axis,
// however, you must notice that the higher this value is, the more unstable the car becomes.
// Usually the y value goes from 0 to 1.5.
//WHEELS
//[Header("WHEELS")]
/*
The following variables are used to store the wheels' data of the car. We need both the mesh-only game objects and wheel
collider components of the wheels. The wheel collider components and 3D meshes of the wheels cannot come from the same
game object; they must be separate game objects.
*/
public GameObject frontLeftMesh;
public WheelCollider frontLeftCollider;
[Space(10)]
public GameObject frontRightMesh;
public WheelCollider frontRightCollider;
[Space(10)]
public GameObject rearLeftMesh;
public WheelCollider rearLeftCollider;
[Space(10)]
public GameObject rearRightMesh;
public WheelCollider rearRightCollider;
//PARTICLE SYSTEMS
[Space(20)]
//[Header("EFFECTS")]
[Space(10)]
//The following variable lets you to set up particle systems in your car
public bool useEffects = false;
// The following particle systems are used as tire smoke when the car drifts.
public ParticleSystem RLWParticleSystem;
public ParticleSystem RRWParticleSystem;
[Space(10)]
// The following trail renderers are used as tire skids when the car loses traction.
public TrailRenderer RLWTireSkid;
public TrailRenderer RRWTireSkid;
//SPEED TEXT (UI)
[Space(20)]
//[Header("UI")]
[Space(10)]
//The following variable lets you to set up a UI text to display the speed of your car.
public bool useUI = false;
public Text carSpeedText; // Used to store the UI object that is going to show the speed of the car.
//SOUNDS
[Space(20)]
//[Header("Sounds")]
[Space(10)]
//The following variable lets you to set up sounds for your car such as the car engine or tire screech sounds.
public bool useSounds = false;
public AudioSource carEngineSound; // This variable stores the sound of the car engine.
public AudioSource tireScreechSound; // This variable stores the sound of the tire screech (when the car is drifting).
float initialCarEngineSoundPitch; // Used to store the initial pitch of the car engine sound.
//CONTROLS
[Space(20)]
//[Header("CONTROLS")]
[Space(10)]
//The following variables lets you to set up touch controls for mobile devices.
public bool useTouchControls = false;
public GameObject throttleButton;
PrometeoTouchInput throttlePTI;
public GameObject reverseButton;
PrometeoTouchInput reversePTI;
public GameObject turnRightButton;
PrometeoTouchInput turnRightPTI;
public GameObject turnLeftButton;
PrometeoTouchInput turnLeftPTI;
public GameObject handbrakeButton;
PrometeoTouchInput handbrakePTI;
//CAR DATA
[HideInInspector]
public float carSpeed; // Used to store the speed of the car.
[HideInInspector]
public bool isDrifting; // Used to know whether the car is drifting or not.
[HideInInspector]
public bool isTractionLocked; // Used to know whether the traction of the car is locked or not.
//PRIVATE VARIABLES
/*
IMPORTANT: The following variables should not be modified manually since their values are automatically given via script.
*/
Rigidbody carRigidbody; // Stores the car's rigidbody.
float steeringAxis; // Used to know whether the steering wheel has reached the maximum value. It goes from -1 to 1.
float throttleAxis; // Used to know whether the throttle has reached the maximum value. It goes from -1 to 1.
float driftingAxis;
float localVelocityZ;
float localVelocityX;
bool deceleratingCar;
bool touchControlsSetup = false;
/*
The following variables are used to store information about sideways friction of the wheels (such as
extremumSlip,extremumValue, asymptoteSlip, asymptoteValue and stiffness). We change this values to
make the car to start drifting.
*/
WheelFrictionCurve FLwheelFriction;
float FLWextremumSlip;
WheelFrictionCurve FRwheelFriction;
float FRWextremumSlip;
WheelFrictionCurve RLwheelFriction;
float RLWextremumSlip;
WheelFrictionCurve RRwheelFriction;
float RRWextremumSlip;
// Start is called before the first frame update
void Start()
{
//In this part, we set the 'carRigidbody' value with the Rigidbody attached to this
//gameObject. Also, we define the center of mass of the car with the Vector3 given
//in the inspector.
carRigidbody = gameObject.GetComponent<Rigidbody>();
carRigidbody.centerOfMass = bodyMassCenter;
//Initial setup to calculate the drift value of the car. This part could look a bit
//complicated, but do not be afraid, the only thing we're doing here is to save the default
//friction values of the car wheels so we can set an appropiate drifting value later.
FLwheelFriction = new WheelFrictionCurve ();
FLwheelFriction.extremumSlip = frontLeftCollider.sidewaysFriction.extremumSlip;
FLWextremumSlip = frontLeftCollider.sidewaysFriction.extremumSlip;
FLwheelFriction.extremumValue = frontLeftCollider.sidewaysFriction.extremumValue;
FLwheelFriction.asymptoteSlip = frontLeftCollider.sidewaysFriction.asymptoteSlip;
FLwheelFriction.asymptoteValue = frontLeftCollider.sidewaysFriction.asymptoteValue;
FLwheelFriction.stiffness = frontLeftCollider.sidewaysFriction.stiffness;
FRwheelFriction = new WheelFrictionCurve ();
FRwheelFriction.extremumSlip = frontRightCollider.sidewaysFriction.extremumSlip;
FRWextremumSlip = frontRightCollider.sidewaysFriction.extremumSlip;
FRwheelFriction.extremumValue = frontRightCollider.sidewaysFriction.extremumValue;
FRwheelFriction.asymptoteSlip = frontRightCollider.sidewaysFriction.asymptoteSlip;
FRwheelFriction.asymptoteValue = frontRightCollider.sidewaysFriction.asymptoteValue;
FRwheelFriction.stiffness = frontRightCollider.sidewaysFriction.stiffness;
RLwheelFriction = new WheelFrictionCurve ();
RLwheelFriction.extremumSlip = rearLeftCollider.sidewaysFriction.extremumSlip;
RLWextremumSlip = rearLeftCollider.sidewaysFriction.extremumSlip;
RLwheelFriction.extremumValue = rearLeftCollider.sidewaysFriction.extremumValue;
RLwheelFriction.asymptoteSlip = rearLeftCollider.sidewaysFriction.asymptoteSlip;
RLwheelFriction.asymptoteValue = rearLeftCollider.sidewaysFriction.asymptoteValue;
RLwheelFriction.stiffness = rearLeftCollider.sidewaysFriction.stiffness;
RRwheelFriction = new WheelFrictionCurve ();
RRwheelFriction.extremumSlip = rearRightCollider.sidewaysFriction.extremumSlip;
RRWextremumSlip = rearRightCollider.sidewaysFriction.extremumSlip;
RRwheelFriction.extremumValue = rearRightCollider.sidewaysFriction.extremumValue;
RRwheelFriction.asymptoteSlip = rearRightCollider.sidewaysFriction.asymptoteSlip;
RRwheelFriction.asymptoteValue = rearRightCollider.sidewaysFriction.asymptoteValue;
RRwheelFriction.stiffness = rearRightCollider.sidewaysFriction.stiffness;
// We save the initial pitch of the car engine sound.
if(carEngineSound != null){
initialCarEngineSoundPitch = carEngineSound.pitch;
}
// We invoke 2 methods inside this script. CarSpeedUI() changes the text of the UI object that stores
// the speed of the car and CarSounds() controls the engine and drifting sounds. Both methods are invoked
// in 0 seconds, and repeatedly called every 0.1 seconds.
if(useUI){
InvokeRepeating("CarSpeedUI", 0f, 0.1f);
}else if(!useUI){
if(carSpeedText != null){
carSpeedText.text = "0";
}
}
if(useSounds){
InvokeRepeating("CarSounds", 0f, 0.1f);
}else if(!useSounds){
if(carEngineSound != null){
carEngineSound.Stop();
}
if(tireScreechSound != null){
tireScreechSound.Stop();
}
}
if(!useEffects){
if(RLWParticleSystem != null){
RLWParticleSystem.Stop();
}
if(RRWParticleSystem != null){
RRWParticleSystem.Stop();
}
if(RLWTireSkid != null){
RLWTireSkid.emitting = false;
}
if(RRWTireSkid != null){
RRWTireSkid.emitting = false;
}
}
if(useTouchControls){
if(throttleButton != null && reverseButton != null &&
turnRightButton != null && turnLeftButton != null
&& handbrakeButton != null){
throttlePTI = throttleButton.GetComponent<PrometeoTouchInput>();
reversePTI = reverseButton.GetComponent<PrometeoTouchInput>();
turnLeftPTI = turnLeftButton.GetComponent<PrometeoTouchInput>();
turnRightPTI = turnRightButton.GetComponent<PrometeoTouchInput>();
handbrakePTI = handbrakeButton.GetComponent<PrometeoTouchInput>();
touchControlsSetup = true;
}else{
String ex = "Touch controls are not completely set up. You must drag and drop your scene buttons in the" +
" PrometeoCarController component.";
Debug.LogWarning(ex);
}
}
}
// Update is called once per frame
void Update()
{
//CAR DATA
// We determine the speed of the car.
// carSpeed = (2 * Mathf.PI * frontLeftCollider.radius * frontLeftCollider.rpm * 60) / 1000;
carSpeed = (2 * Mathf.PI * frontLeftCollider.radius * frontLeftCollider.rpm * 60) / 2000;//ÏÔʾËٶȵ÷С2±¶
// Save the local velocity of the car in the x axis. Used to know if the car is drifting.
localVelocityX = transform.InverseTransformDirection(carRigidbody.velocity).x;
// Save the local velocity of the car in the z axis. Used to know if the car is going forward or backwards.
localVelocityZ = transform.InverseTransformDirection(carRigidbody.velocity).z;
//CAR PHYSICS
/*
The next part is regarding to the car controller. First, it checks if the user wants to use touch controls (for
mobile devices) or analog input controls (WASD + Space).
The following methods are called whenever a certain key is pressed. For example, in the first 'if' we call the
method GoForward() if the user has pressed W.
In this part of the code we specify what the car needs to do if the user presses W (throttle), S (reverse),
A (turn left), D (turn right) or Space bar (handbrake).
*/
if (useTouchControls && touchControlsSetup){
if(throttlePTI.buttonPressed){
CancelInvoke("DecelerateCar");
deceleratingCar = false;
GoForward();
}
if(reversePTI.buttonPressed){
CancelInvoke("DecelerateCar");
deceleratingCar = false;
GoReverse();
}
if(turnLeftPTI.buttonPressed){
TurnLeft();
}
if(turnRightPTI.buttonPressed){
TurnRight();
}
if(handbrakePTI.buttonPressed){
CancelInvoke("DecelerateCar");
deceleratingCar = false;
Handbrake();
}
if(!handbrakePTI.buttonPressed){
RecoverTraction();
}
if((!throttlePTI.buttonPressed && !reversePTI.buttonPressed)){
ThrottleOff();
}
if((!reversePTI.buttonPressed && !throttlePTI.buttonPressed) && !handbrakePTI.buttonPressed && !deceleratingCar){
InvokeRepeating("DecelerateCar", 0f, 0.1f);
deceleratingCar = true;
}
if(!turnLeftPTI.buttonPressed && !turnRightPTI.buttonPressed && steeringAxis != 0f){
ResetSteeringAngle();
}
}else{
if(Input.GetKey(KeyCode.W)){
CancelInvoke("DecelerateCar");
deceleratingCar = false;
GoForward();
}
if(Input.GetKey(KeyCode.S)){
CancelInvoke("DecelerateCar");
deceleratingCar = false;
GoReverse();
}
if(Input.GetKey(KeyCode.A)){
TurnLeft();
}
if(Input.GetKey(KeyCode.D)){
TurnRight();
}
if(Input.GetKey(KeyCode.Space)){
CancelInvoke("DecelerateCar");
deceleratingCar = false;
Handbrake();
}
if(Input.GetKeyUp(KeyCode.Space)){
RecoverTraction();
}
if((!Input.GetKey(KeyCode.S) && !Input.GetKey(KeyCode.W))){
ThrottleOff();
}
if((!Input.GetKey(KeyCode.S) && !Input.GetKey(KeyCode.W)) && !Input.GetKey(KeyCode.Space) && !deceleratingCar){
InvokeRepeating("DecelerateCar", 0f, 0.1f);
deceleratingCar = true;
}
if(!Input.GetKey(KeyCode.A) && !Input.GetKey(KeyCode.D) && steeringAxis != 0f){
ResetSteeringAngle();
}
}
// We call the method AnimateWheelMeshes() in order to match the wheel collider movements with the 3D meshes of the wheels.
AnimateWheelMeshes();
}
// This method converts the car speed data from float to string, and then set the text of the UI carSpeedText with this value.
public void CarSpeedUI(){
if(useUI){
try{
float absoluteCarSpeed = Mathf.Abs(carSpeed);
carSpeedText.text = Mathf.RoundToInt(absoluteCarSpeed).ToString();
}catch(Exception ex){
Debug.LogWarning(ex);
}
}
}
// This method controls the car sounds. For example, the car engine will sound slow when the car speed is low because the
// pitch of the sound will be at its lowest point. On the other hand, it will sound fast when the car speed is high because
// the pitch of the sound will be the sum of the initial pitch + the car speed divided by 100f.
// Apart from that, the tireScreechSound will play whenever the car starts drifting or losing traction.
public void CarSounds(){
if(useSounds){
try{
if(carEngineSound != null){
float engineSoundPitch = initialCarEngineSoundPitch + (Mathf.Abs(carRigidbody.velocity.magnitude) / 25f);
carEngineSound.pitch = engineSoundPitch;
}
if((isDrifting) || (isTractionLocked && Mathf.Abs(carSpeed) > 12f)){
if(!tireScreechSound.isPlaying){
tireScreechSound.Play();
}
}else if((!isDrifting) && (!isTractionLocked || Mathf.Abs(carSpeed) < 12f)){
tireScreechSound.Stop();
}
}catch(Exception ex){
Debug.LogWarning(ex);
}
}else if(!useSounds){
if(carEngineSound != null && carEngineSound.isPlaying){
carEngineSound.Stop();
}
if(tireScreechSound != null && tireScreechSound.isPlaying){
tireScreechSound.Stop();
}
}
}
//
//STEERING METHODS
//
//The following method turns the front car wheels to the left. The speed of this movement will depend on the steeringSpeed variable.
public void TurnLeft(){
steeringAxis = steeringAxis - (Time.deltaTime * 10f * steeringSpeed);
if(steeringAxis < -1f){
steeringAxis = -1f;
}
var steeringAngle = steeringAxis * maxSteeringAngle;
frontLeftCollider.steerAngle = Mathf.Lerp(frontLeftCollider.steerAngle, steeringAngle, steeringSpeed);
frontRightCollider.steerAngle = Mathf.Lerp(frontRightCollider.steerAngle, steeringAngle, steeringSpeed);
}
//The following method turns the front car wheels to the right. The speed of this movement will depend on the steeringSpeed variable.
public void TurnRight(){
steeringAxis = steeringAxis + (Time.deltaTime * 10f * steeringSpeed);
if(steeringAxis > 1f){
steeringAxis = 1f;
}
var steeringAngle = steeringAxis * maxSteeringAngle;
frontLeftCollider.steerAngle = Mathf.Lerp(frontLeftCollider.steerAngle, steeringAngle, steeringSpeed);
frontRightCollider.steerAngle = Mathf.Lerp(frontRightCollider.steerAngle, steeringAngle, steeringSpeed);
}
//The following method takes the front car wheels to their default position (rotation = 0). The speed of this movement will depend
// on the steeringSpeed variable.
public void ResetSteeringAngle(){
if(steeringAxis < 0f){
steeringAxis = steeringAxis + (Time.deltaTime * 10f * steeringSpeed);
}else if(steeringAxis > 0f){
steeringAxis = steeringAxis - (Time.deltaTime * 10f * steeringSpeed);
}
if(Mathf.Abs(frontLeftCollider.steerAngle) < 1f){
steeringAxis = 0f;
}
var steeringAngle = steeringAxis * maxSteeringAngle;
frontLeftCollider.steerAngle = Mathf.Lerp(frontLeftCollider.steerAngle, steeringAngle, steeringSpeed);
frontRightCollider.steerAngle = Mathf.Lerp(frontRightCollider.steerAngle, steeringAngle, steeringSpeed);
}
// This method matches both the position and rotation of the WheelColliders with the WheelMeshes.
void AnimateWheelMeshes(){
try{
Quaternion FLWRotation;
Vector3 FLWPosition;
frontLeftCollider.GetWorldPose(out FLWPosition, out FLWRotation);
frontLeftMesh.transform.position = FLWPosition;
frontLeftMesh.transform.rotation = FLWRotation;
Quaternion FRWRotation;
Vector3 FRWPosition;
frontRightCollider.GetWorldPose(out FRWPosition, out FRWRotation);
frontRightMesh.transform.position = FRWPosition;
frontRightMesh.transform.rotation = FRWRotation;
Quaternion RLWRotation;
Vector3 RLWPosition;
rearLeftCollider.GetWorldPose(out RLWPosition, out RLWRotation);
rearLeftMesh.transform.position = RLWPosition;
rearLeftMesh.transform.rotation = RLWRotation;
Quaternion RRWRotation;
Vector3 RRWPosition;
rearRightCollider.GetWorldPose(out RRWPosition, out RRWRotation);
rearRightMesh.transform.position = RRWPosition;
rearRightMesh.transform.rotation = RRWRotation;
}catch(Exception ex){
Debug.LogWarning(ex);
}
}
//
//ENGINE AND BRAKING METHODS
//
// This method apply positive torque to the wheels in order to go forward.
public void GoForward(){
//If the forces aplied to the rigidbody in the 'x' asis are greater than
//3f, it means that the car is losing traction, then the car will start emitting particle systems.
if(Mathf.Abs(localVelocityX) > 2.5f){
isDrifting = true;
DriftCarPS();
}else{
isDrifting = false;
DriftCarPS();
}
// The following part sets the throttle power to 1 smoothly.
throttleAxis = throttleAxis + (Time.deltaTime * 3f);
if(throttleAxis > 1f){
throttleAxis = 1f;
}
//If the car is going backwards, then apply brakes in order to avoid strange
//behaviours. If the local velocity in the 'z' axis is less than -1f, then it
//is safe to apply positive torque to go forward.
if(localVelocityZ < -1f){
Brakes();
}else{
if(Mathf.RoundToInt(carSpeed) < maxSpeed){
//Apply positive torque in all wheels to go forward if maxSpeed has not been reached.
frontLeftCollider.brakeTorque = 0;
frontLeftCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
frontRightCollider.brakeTorque = 0;
frontRightCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
rearLeftCollider.brakeTorque = 0;
rearLeftCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
rearRightCollider.brakeTorque = 0;
rearRightCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
}else {
// If the maxSpeed has been reached, then stop applying torque to the wheels.
// IMPORTANT: The maxSpeed variable should be considered as an approximation; the speed of the car
// could be a bit higher than expected.
frontLeftCollider.motorTorque = 0;
frontRightCollider.motorTorque = 0;
rearLeftCollider.motorTorque = 0;
rearRightCollider.motorTorque = 0;
}
}
}
// This method apply negative torque to the wheels in order to go backwards.
public void GoReverse(){
//If the forces aplied to the rigidbody in the 'x' asis are greater than
//3f, it means that the car is losing traction, then the car will start emitting particle systems.
if(Mathf.Abs(localVelocityX) > 2.5f){
isDrifting = true;
DriftCarPS();
}else{
isDrifting = false;
DriftCarPS();
}
// The following part sets the throttle power to -1 smoothly.
throttleAxis = throttleAxis - (Time.deltaTime * 3f);
if(throttleAxis < -1f){
throttleAxis = -1f;
}
//If the car is still going forward, then apply brakes in order to avoid strange
//behaviours. If the local velocity in the 'z' axis is greater than 1f, then it
//is safe to apply negative torque to go reverse.
if(localVelocityZ > 1f){
Brakes();
}else{
if(Mathf.Abs(Mathf.RoundToInt(carSpeed)) < maxReverseSpeed){
//Apply negative torque in all wheels to go in reverse if maxReverseSpeed has not been reached.
frontLeftCollider.brakeTorque = 0;
frontLeftCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
frontRightCollider.brakeTorque = 0;
frontRightCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
rearLeftCollider.brakeTorque = 0;
rearLeftCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
rearRightCollider.brakeTorque = 0;
rearRightCollider.motorTorque = (accelerationMultiplier * 50f) * throttleAxis;
}else {
//If the maxReverseSpeed has been reached, then stop applying torque to the wheels.
// IMPORTANT: The maxReverseSpeed variable should be considered as an approximation; the speed of the car
// could be a bit higher than expected.
frontLeftCollider.motorTorque = 0;
frontRightCollider.motorTorque = 0;
rearLeftCollider.motorTorque = 0;
rearRightCollider.motorTorque = 0;
}
}
}
//The following function set the motor torque to 0 (in case the user is not pressing either W or S).
public void ThrottleOff(){
frontLeftCollider.motorTorque = 0;
frontRightCollider.motorTorque = 0;
rearLeftCollider.motorTorque = 0;
rearRightCollider.motorTorque = 0;
}
// The following method decelerates the speed of the car according to the decelerationMultiplier variable, where
// 1 is the slowest and 10 is the fastest deceleration. This method is called by the function InvokeRepeating,
// usually every 0.1f when the user is not pressing W (throttle), S (reverse) or Space bar (handbrake).
public void DecelerateCar(){
if(Mathf.Abs(localVelocityX) > 2.5f){
isDrifting = true;
DriftCarPS();
}else{
isDrifting = false;
DriftCarPS();
}
// The following part resets the throttle power to 0 smoothly.
if(throttleAxis != 0f){
if(throttleAxis > 0f){
throttleAxis = throttleAxis - (Time.deltaTime * 10f);
}else if(throttleAxis < 0f){
throttleAxis = throttleAxis + (Time.deltaTime * 10f);
}
if(Mathf.Abs(throttleAxis) < 0.15f){
throttleAxis = 0f;
}
}
carRigidbody.velocity = carRigidbody.velocity * (1f / (1f + (0.025f * decelerationMultiplier)));
// Since we want to decelerate the car, we are going to remove the torque from the wheels of the car.
frontLeftCollider.motorTorque = 0;
frontRightCollider.motorTorque = 0;
rearLeftCollider.motorTorque = 0;
rearRightCollider.motorTorque = 0;
// If the magnitude of the car's velocity is less than 0.25f (very slow velocity), then stop the car completely and
// also cancel the invoke of this method.
if(carRigidbody.velocity.magnitude < 0.25f){
carRigidbody.velocity = Vector3.zero;
CancelInvoke("DecelerateCar");
}
}
// This function applies brake torque to the wheels according to the brake force given by the user.
public void Brakes(){
frontLeftCollider.brakeTorque = brakeForce;
frontRightCollider.brakeTorque = brakeForce;
rearLeftCollider.brakeTorque = brakeForce;
rearRightCollider.brakeTorque = brakeForce;
}
// This function is used to make the car lose traction. By using this, the car will start drifting. The amount of traction lost
// will depend on the handbrakeDriftMultiplier variable. If this value is small, then the car will not drift too much, but if
// it is high, then you could make the car to feel like going on ice.
public void Handbrake(){
CancelInvoke("RecoverTraction");
// We are going to start losing traction smoothly, there is were our 'driftingAxis' variable takes
// place. This variable will start from 0 and will reach a top value of 1, which means that the maximum
// drifting value has been reached. It will increase smoothly by using the variable Time.deltaTime.
driftingAxis = driftingAxis + (Time.deltaTime);
float secureStartingPoint = driftingAxis * FLWextremumSlip * handbrakeDriftMultiplier;
if(secureStartingPoint < FLWextremumSlip){
driftingAxis = FLWextremumSlip / (FLWextremumSlip * handbrakeDriftMultiplier);
}
if(driftingAxis > 1f){
driftingAxis = 1f;
}
//If the forces aplied to the rigidbody in the 'x' asis are greater than
//3f, it means that the car lost its traction, then the car will start emitting particle systems.
if(Mathf.Abs(localVelocityX) > 2.5f){
isDrifting = true;
}else{
isDrifting = false;
}
//If the 'driftingAxis' value is not 1f, it means that the wheels have not reach their maximum drifting
//value, so, we are going to continue increasing the sideways friction of the wheels until driftingAxis
// = 1f.
if(driftingAxis < 1f){
FLwheelFriction.extremumSlip = FLWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
frontLeftCollider.sidewaysFriction = FLwheelFriction;
FRwheelFriction.extremumSlip = FRWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
frontRightCollider.sidewaysFriction = FRwheelFriction;
RLwheelFriction.extremumSlip = RLWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
rearLeftCollider.sidewaysFriction = RLwheelFriction;
RRwheelFriction.extremumSlip = RRWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
rearRightCollider.sidewaysFriction = RRwheelFriction;
}
// Whenever the player uses the handbrake, it means that the wheels are locked, so we set 'isTractionLocked = true'
// and, as a consequense, the car starts to emit trails to simulate the wheel skids.
isTractionLocked = true;
DriftCarPS();
}
// This function is used to emit both the particle systems of the tires' smoke and the trail renderers of the tire skids
// depending on the value of the bool variables 'isDrifting' and 'isTractionLocked'.
public void DriftCarPS(){
if(useEffects){
try{
if(isDrifting){
RLWParticleSystem.Play();
RRWParticleSystem.Play();
}else if(!isDrifting){
RLWParticleSystem.Stop();
RRWParticleSystem.Stop();
}
}catch(Exception ex){
Debug.LogWarning(ex);
}
try{
if((isTractionLocked || Mathf.Abs(localVelocityX) > 5f) && Mathf.Abs(carSpeed) > 12f){
RLWTireSkid.emitting = true;
RRWTireSkid.emitting = true;
}else {
RLWTireSkid.emitting = false;
RRWTireSkid.emitting = false;
}
}catch(Exception ex){
Debug.LogWarning(ex);
}
}else if(!useEffects){
if(RLWParticleSystem != null){
RLWParticleSystem.Stop();
}
if(RRWParticleSystem != null){
RRWParticleSystem.Stop();
}
if(RLWTireSkid != null){
RLWTireSkid.emitting = false;
}
if(RRWTireSkid != null){
RRWTireSkid.emitting = false;
}
}
}
// This function is used to recover the traction of the car when the user has stopped using the car's handbrake.
public void RecoverTraction(){
isTractionLocked = false;
driftingAxis = driftingAxis - (Time.deltaTime / 1.5f);
if(driftingAxis < 0f){
driftingAxis = 0f;
}
//If the 'driftingAxis' value is not 0f, it means that the wheels have not recovered their traction.
//We are going to continue decreasing the sideways friction of the wheels until we reach the initial
// car's grip.
if(FLwheelFriction.extremumSlip > FLWextremumSlip){
FLwheelFriction.extremumSlip = FLWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
frontLeftCollider.sidewaysFriction = FLwheelFriction;
FRwheelFriction.extremumSlip = FRWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
frontRightCollider.sidewaysFriction = FRwheelFriction;
RLwheelFriction.extremumSlip = RLWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
rearLeftCollider.sidewaysFriction = RLwheelFriction;
RRwheelFriction.extremumSlip = RRWextremumSlip * handbrakeDriftMultiplier * driftingAxis;
rearRightCollider.sidewaysFriction = RRwheelFriction;
Invoke("RecoverTraction", Time.deltaTime);
}else if (FLwheelFriction.extremumSlip < FLWextremumSlip){
FLwheelFriction.extremumSlip = FLWextremumSlip;
frontLeftCollider.sidewaysFriction = FLwheelFriction;
FRwheelFriction.extremumSlip = FRWextremumSlip;
frontRightCollider.sidewaysFriction = FRwheelFriction;
RLwheelFriction.extremumSlip = RLWextremumSlip;
rearLeftCollider.sidewaysFriction = RLwheelFriction;
RRwheelFriction.extremumSlip = RRWextremumSlip;
rearRightCollider.sidewaysFriction = RRwheelFriction;
driftingAxis = 0f;
}
}
}

View File

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

View File

@ -0,0 +1,34 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PrometeoTouchInput : MonoBehaviour
{
public bool changeScaleOnPressed = false;
[HideInInspector]
public bool buttonPressed = false;
RectTransform rectTransform;
Vector3 initialScale;
float scaleDownMultiplier = 0.85f;
void Start(){
rectTransform = GetComponent<RectTransform>();
initialScale = rectTransform.localScale;
}
public void ButtonDown(){
buttonPressed = true;
if(changeScaleOnPressed){
rectTransform.localScale = initialScale * scaleDownMultiplier;
}
}
public void ButtonUp(){
buttonPressed = false;
if(changeScaleOnPressed){
rectTransform.localScale = initialScale;
}
}
}

View File

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

View File

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

View File

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 771ce407ce807b74885ec23ebd1e6647
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: f632e2ace80a32e47a2c531f64901a50
AudioImporter:
externalObjects: {}
serializedVersion: 6
defaultSettings:
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
platformSettingOverrides: {}
forceToMono: 1
normalize: 1
preloadAudioData: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

View File

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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

View File

@ -0,0 +1,120 @@
fileFormatVersion: 2
guid: 299ba41030d7a36409e6380e9317c890
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

View File

@ -0,0 +1,120 @@
fileFormatVersion: 2
guid: edbdf29c69394334796f7fd1fef82d90
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 1
aniso: 1
mipBias: 0
wrapU: 1
wrapV: 1
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 1024
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@ -0,0 +1,128 @@
fileFormatVersion: 2
guid: 5cf2f8f7b80b88e4387cd662a513a231
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Android
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: WebGL
maxTextureSize: 512
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 2
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -469,32 +469,6 @@ Camera:
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!1 &66655738 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!54 &66655739
Rigidbody:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 66655738}
serializedVersion: 2
m_Mass: 1000
m_Drag: 0
m_AngularDrag: 0.05
m_UseGravity: 1
m_IsKinematic: 0
m_Interpolate: 0
m_Constraints: 112
m_CollisionDetection: 0
--- !u!4 &66655740 stripped
Transform:
m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!1 &103230652
GameObject:
m_ObjectHideFlags: 0
@ -655,160 +629,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 107639990}
m_CullTransparentMesh: 1
--- !u!1001 &117929441
PrefabInstance:
m_ObjectHideFlags: 0
serializedVersion: 2
m_Modification:
m_TransformParent: {fileID: 0}
m_Modifications:
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_RootOrder
value: 11
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalPosition.x
value: -0.88
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalPosition.y
value: 0.63
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalPosition.z
value: -22.92
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalRotation.w
value: 1
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalRotation.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalRotation.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalRotation.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalEulerAnglesHint.x
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalEulerAnglesHint.y
value: 0
objectReference: {fileID: 0}
- target: {fileID: -8679921383154817045, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_LocalEulerAnglesHint.z
value: 0
objectReference: {fileID: 0}
- target: {fileID: 919132149155446097, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
propertyPath: m_Name
value: "\u53C9\u8F66"
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
--- !u!1 &131466169
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 131466170}
- component: {fileID: 131466173}
- component: {fileID: 131466172}
- component: {fileID: 131466171}
m_Layer: 0
m_Name: Cube (1)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &131466170
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 131466169}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.6392, y: 0.271, z: 0.01}
m_LocalScale: {x: 1.1509435, y: 0.122210495, z: 0.074421495}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1200611447}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &131466171
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 131466169}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &131466172
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 131466169}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &131466173
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 131466169}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &136298434
GameObject:
m_ObjectHideFlags: 0
@ -1277,103 +1097,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Delegates: []
--- !u!1 &422646653
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 422646654}
- component: {fileID: 422646657}
- component: {fileID: 422646656}
- component: {fileID: 422646655}
m_Layer: 0
m_Name: "\u8F66\u8F86\u78B0\u649E"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &422646654
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 422646653}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.586, y: 0.149, z: 0}
m_LocalScale: {x: 0.99619657, y: 0.33324766, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 66655740}
m_RootOrder: 7
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &422646655
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 422646653}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &422646656
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 422646653}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &422646657
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 422646653}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &423296133
GameObject:
m_ObjectHideFlags: 0
@ -1534,42 +1257,6 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 491013589}
m_CullTransparentMesh: 1
--- !u!1 &507430655 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 2527180927196559317, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!65 &507430659
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 507430655}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.5536261, y: 0.20529285, z: 0.55362386}
m_Center: {x: 0.00000004470349, y: -0.000000052154082, z: -0.000000014901167}
--- !u!1 &573179686 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -4013394114208297365, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!65 &573179690
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 573179686}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.70072263, y: 0.22965893, z: 0.7007292}
m_Center: {x: 0, y: 0.0000018887222, z: -0.000000029802333}
--- !u!1001 &573975653
PrefabInstance:
m_ObjectHideFlags: 0
@ -2087,24 +1774,6 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Delegates: []
--- !u!1 &795791962 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: 352317586533066398, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!65 &795791966
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 795791962}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.29803184, y: 0.3572613, z: 0.21827354}
m_Center: {x: -0.0000000074505815, y: -0.000000007450583, z: 0.00000017508862}
--- !u!1 &814072876
GameObject:
m_ObjectHideFlags: 0
@ -2429,103 +2098,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1034193723
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1034193724}
- component: {fileID: 1034193727}
- component: {fileID: 1034193726}
- component: {fileID: 1034193725}
m_Layer: 0
m_Name: "\u4E0A\u8F66\u89E6\u53D1"
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1034193724
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1034193723}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0.4056, y: 0.076, z: -0.6968}
m_LocalScale: {x: 2.1909783, y: 0.069180794, z: 0.4665425}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 66655740}
m_RootOrder: 8
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1034193725
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1034193723}
m_Material: {fileID: 0}
m_IsTrigger: 1
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1034193726
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1034193723}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1034193727
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1034193723}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
--- !u!1 &1154824819
GameObject:
m_ObjectHideFlags: 0
@ -2620,60 +2192,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!4 &1200611447 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 7699166563409214246, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!1 &1360993344
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1360993345}
m_Layer: 0
m_Name: GameObject
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1360993345
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1360993344}
m_LocalRotation: {x: 0, y: -0.7071068, z: 0, w: 0.7071068}
m_LocalPosition: {x: 0, y: 1.611, z: -22.836}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 66655740}
m_RootOrder: 9
m_LocalEulerAnglesHint: {x: 0, y: -90, z: 0}
--- !u!1 &1428379143 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -6227481546966941074, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!65 &1428379147
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1428379143}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.7007227, y: 0.22965893, z: 0.7007292}
m_Center: {x: 0, y: 0.000000018626459, z: -0.000000029802333}
--- !u!4 &1478971612 stripped
Transform:
m_CorrespondingSourceObject: {fileID: 6692294005839841995, guid: 59c548e5ef54ae94eabee09a3d22a019, type: 3}
@ -2992,43 +2510,6 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1569713658 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -3311565239087924080, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!64 &1569713662
MeshCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1569713658}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 4
m_Convex: 0
m_CookingOptions: 30
m_Mesh: {fileID: 6743431805872906503, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
--- !u!1 &1602942412 stripped
GameObject:
m_CorrespondingSourceObject: {fileID: -98669784986963196, guid: a21869fa40a836245b0ad2b42cefcc28, type: 3}
m_PrefabInstance: {fileID: 117929441}
m_PrefabAsset: {fileID: 0}
--- !u!65 &1602942416
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1602942412}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 0.55362606, y: 0.20527755, z: 0.55362386}
m_Center: {x: 0, y: 0.000000018626459, z: 0.000000029802333}
--- !u!1 &1718418976
GameObject:
m_ObjectHideFlags: 0
@ -3461,100 +2942,3 @@ Transform:
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1952436738
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1952436739}
- component: {fileID: 1952436742}
- component: {fileID: 1952436741}
- component: {fileID: 1952436740}
m_Layer: 0
m_Name: Cube
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1952436739
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1952436738}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -0.6392, y: -0.267, z: 0.0095}
m_LocalScale: {x: 1.1509435, y: 0.122210495, z: 0.074421495}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1200611447}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!65 &1952436740
BoxCollider:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1952436738}
m_Material: {fileID: 0}
m_IsTrigger: 0
m_Enabled: 1
serializedVersion: 2
m_Size: {x: 1, y: 1, z: 1}
m_Center: {x: 0, y: 0, z: 0}
--- !u!23 &1952436741
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1952436738}
m_Enabled: 0
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_StaticShadowCaster: 0
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 2
m_RayTraceProcedural: 0
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_ReceiveGI: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 1
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_AdditionalVertexStreams: {fileID: 0}
--- !u!33 &1952436742
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1952436738}
m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}

View File

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

View File

@ -0,0 +1,93 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
/// <summary>
/// 叉车
/// </summary>
public class ForkliftController : MonoBehaviour
{
public float moveSpeed = 1500;
public float maxAngle = 35;
public float angleSpeed = 50;
public float breakMove = 1000f;
public float boostMultiplier = 2f; // 加速倍数Shift 键)
public WheelCollider leftF;
public WheelCollider leftB;
public WheelCollider rightF;
public WheelCollider rightB;
public Transform model_leftF;
public Transform model_leftB;
public Transform model_rightF;
public Transform model_rightB;
void Update()
{
WheelsControl_Update();
WheelRot();
}
void WheelsControl_Update()
{
//垂直轴和水平轴
float h = Input.GetAxisRaw("Horizontal");
float v = Input.GetAxisRaw("Vertical");
// 默认速度 = moveSpeed
float currentSpeed = moveSpeed;
//前轮角度,后轮驱动
leftB.motorTorque = v * moveSpeed;
rightB.motorTorque = v * moveSpeed;
WheelsModel_Update(model_leftF, leftF);
WheelsModel_Update(model_leftB, leftB);
WheelsModel_Update(model_rightF, rightF);
WheelsModel_Update(model_rightB, rightB);
//if (Input.GetKeyDown(KeyCode.LeftShift))
//{
// leftB.motorTorque += v * moveSpeed*2;
// rightB.motorTorque += v * moveSpeed*2;
//}
float targetSpeed = Input.GetKey(KeyCode.LeftShift) ? moveSpeed * boostMultiplier : moveSpeed;
currentSpeed = Mathf.Lerp(currentSpeed, targetSpeed, Time.deltaTime * 10f); // 5f 控制平滑速度
}
void WheelsModel_Update(Transform t, WheelCollider wheel)
{
Vector3 pos = t.position;
Quaternion rot = t.rotation;
wheel.GetWorldPose(out pos, out rot);
t.position = pos;
t.rotation = rot;
}
void WheelRot()
{
//左转向
if (Input.GetKey(KeyCode.A))
{
//Debug.Log(leftF.steerAngle);
leftF.steerAngle -= Time.deltaTime * angleSpeed;
rightF.steerAngle -= Time.deltaTime * angleSpeed;
if (leftF.steerAngle < (0 - maxAngle) || rightF.steerAngle < (0 - maxAngle))
{
//到最大值后就不能继续加角度了
leftF.steerAngle = (0 - maxAngle);
rightF.steerAngle = (0 - maxAngle);
}
}
//右转向
if (Input.GetKey(KeyCode.D))
{
leftF.steerAngle += Time.deltaTime * angleSpeed;
rightF.steerAngle += Time.deltaTime * angleSpeed;
if (leftF.steerAngle > maxAngle || rightF.steerAngle > maxAngle)
{
leftF.steerAngle = maxAngle;
rightF.steerAngle = maxAngle;
}
}
//松开转向后,方向打回
if (Input.GetKeyUp(KeyCode.A) || Input.GetKeyUp(KeyCode.D))
leftF.steerAngle = rightF.steerAngle = 0;
bool isBraking = Input.GetKey(KeyCode.Space);
leftB.brakeTorque = isBraking ? breakMove : 0f;
rightB.brakeTorque = isBraking ? breakMove : 0f;
}
}

View File

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

View File

@ -1,111 +1,111 @@
using UnityEngine;
public class CraneController : MonoBehaviour
{
public static CraneController Instance;
[Header("物体")]
public Transform bridge; // 横杆
public Transform hook; // 滑轮
public SkinnedMeshRenderer hookRenderer;//吊钩
[Header("移动速度")]
[Range(1, 10)]
public float bridgeSpeed = 5f; // 横杆移动速度
[Range(1, 10)]
public float hookSpeed = 5f; // 滑轮移动速度
public float blendShapeSpeed = 30f;
[Header("移动范围限制 (Z轴)")]
[Range(-1, -20)]
public float bridgeMinZ = -5f;
[Range(1, 20)]
public float bridgeMaxZ = 5f;
[Range(-1, 5)]
public float hookMinZ = -3f;
[Range(1, 5)]
public float hookMaxZ = 3f;
[Header("BlendShape设置")]
public int hookBlendShapeIndex = 0; // BlendShape索引通常是0
public float minBlendShapeValue = 0f; // 吊钩收起
public float maxBlendShapeValue = 100f; // 吊钩放下
private float currentBlendValue = 0f;
private float baseColliderZ;
private float Max = 0f;
private float Min = 0f;
public BoxCollider hookCollider; //钩子的碰撞
private void Awake()
{
Instance = this;
}
public void Start()
{
Max = -(2.49513f - 0.5113189f) / 100;
Min = (6.295807f - 0.3099952f) / 100;
}
// Update is called once per frame
void Update()
{
HandleBridgeMovement();
HandleHookMovement();
HandleHookLift();
hookSize();
}
void HandleBridgeMovement()
{
// I/K 控制横杆前后
float input = 0;
if (Input.GetKey(KeyCode.I))
input = 1;
else if (Input.GetKey(KeyCode.K))
input = -1;
Vector3 newPos = bridge.position + Vector3.forward * input * bridgeSpeed * Time.deltaTime;
newPos.z = Mathf.Clamp(newPos.z, bridgeMinZ, bridgeMaxZ);
bridge.position = newPos;
}
void HandleHookMovement()
{
// J/L 控制滑轮前后
float input = 0;
if (Input.GetKey(KeyCode.J))
input = 1;
else if (Input.GetKey(KeyCode.L))
input = -1;
Vector3 newPos = hook.position + Vector3.left * input * hookSpeed * Time.deltaTime;
newPos.x = Mathf.Clamp(newPos.x, hookMinZ, hookMaxZ);
hook.position = newPos;
}
void HandleHookLift()
{
if (hookRenderer == null)
return;
float input = 0;
if (Input.GetKey(KeyCode.U))
input = 1; // 上升
else if (Input.GetKey(KeyCode.O))
input = -1; // 下降
currentBlendValue += input * blendShapeSpeed * Time.deltaTime;
currentBlendValue = Mathf.Clamp(currentBlendValue, minBlendShapeValue, maxBlendShapeValue);
hookRenderer.SetBlendShapeWeight(hookBlendShapeIndex, currentBlendValue);
}
public void hookSize()
{
if (hookCollider != null)
{
hookCollider.center = new Vector3(-0.1262663f, -0.01883008f, -0.5113189f + currentBlendValue * Max);
hookCollider.size = new Vector3(0.1096101f, 0.2627291f, 0.3099952f + currentBlendValue * Min);
}
}
}
using UnityEngine;
public class CraneController : MonoBehaviour
{
public static CraneController Instance;
[Header("物体")]
public Transform bridge; // 横杆
public Transform hook; // 滑轮
public SkinnedMeshRenderer hookRenderer;//吊钩
[Header("移动速度")]
[Range(1, 10)]
public float bridgeSpeed = 5f; // 横杆移动速度
[Range(1, 10)]
public float hookSpeed = 5f; // 滑轮移动速度
public float blendShapeSpeed = 30f;
[Header("移动范围限制 (Z轴)")]
[Range(-1, -20)]
public float bridgeMinZ = -5f;
[Range(1, 20)]
public float bridgeMaxZ = 5f;
[Range(-1, 5)]
public float hookMinZ = -3f;
[Range(1, 5)]
public float hookMaxZ = 3f;
[Header("BlendShape设置")]
public int hookBlendShapeIndex = 0; // BlendShape索引通常是0
public float minBlendShapeValue = 0f; // 吊钩收起
public float maxBlendShapeValue = 100f; // 吊钩放下
private float currentBlendValue = 0f;
private float baseColliderZ;
private float Max = 0f;
private float Min = 0f;
public BoxCollider hookCollider; //钩子的碰撞
private void Awake()
{
Instance = this;
}
public void Start()
{
Max = -(2.49513f - 0.5113189f) / 100;
Min = (6.295807f - 0.3099952f) / 100;
}
// Update is called once per frame
void Update()
{
HandleBridgeMovement();
HandleHookMovement();
HandleHookLift();
hookSize();
}
void HandleBridgeMovement()
{
// I/K 控制横杆前后
float input = 0;
if (Input.GetKey(KeyCode.I))
input = 1;
else if (Input.GetKey(KeyCode.K))
input = -1;
Vector3 newPos = bridge.position + Vector3.forward * input * bridgeSpeed * Time.deltaTime;
newPos.z = Mathf.Clamp(newPos.z, bridgeMinZ, bridgeMaxZ);
bridge.position = newPos;
}
void HandleHookMovement()
{
// J/L 控制滑轮前后
float input = 0;
if (Input.GetKey(KeyCode.J))
input = 1;
else if (Input.GetKey(KeyCode.L))
input = -1;
Vector3 newPos = hook.position + Vector3.left * input * hookSpeed * Time.deltaTime;
newPos.x = Mathf.Clamp(newPos.x, hookMinZ, hookMaxZ);
hook.position = newPos;
}
void HandleHookLift()
{
if (hookRenderer == null)
return;
float input = 0;
if (Input.GetKey(KeyCode.U))
input = 1; // 上升
else if (Input.GetKey(KeyCode.O))
input = -1; // 下降
currentBlendValue += input * blendShapeSpeed * Time.deltaTime;
currentBlendValue = Mathf.Clamp(currentBlendValue, minBlendShapeValue, maxBlendShapeValue);
hookRenderer.SetBlendShapeWeight(hookBlendShapeIndex, currentBlendValue);
}
public void hookSize()
{
if (hookCollider != null)
{
hookCollider.center = new Vector3(-0.1262663f, -0.01883008f, -0.5113189f + currentBlendValue * Max);
hookCollider.size = new Vector3(0.1096101f, 0.2627291f, 0.3099952f + currentBlendValue * Min);
}
}
}

8
Assets/Zion/prefab.meta Normal file
View File

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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 8e63bbb8cb7e0b64eb2d5e606ddba89b
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/mod/Meshes.meta Normal file
View File

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

Binary file not shown.

View File

@ -0,0 +1,97 @@
fileFormatVersion: 2
guid: aa35326e084c5774b9fea1733afca70f
ModelImporter:
serializedVersion: 19301
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,97 @@
fileFormatVersion: 2
guid: 8ef3dc744ab293d4ea87fd4c59a15afd
ModelImporter:
serializedVersion: 19301
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@ -0,0 +1,97 @@
fileFormatVersion: 2
guid: 2c403376ef1fe604d8de45d141d39b07
ModelImporter:
serializedVersion: 19301
internalIDToNameTable: []
externalObjects: {}
materials:
materialImportMode: 0
materialName: 0
materialSearch: 1
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 0
meshes:
lODScreenPercentages: []
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
fileIdsGeneration: 2
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
humanDescription:
serializedVersion: 3
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 2
humanoidOversampling: 1
avatarSetup: 0
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant: