物理挙動とアニメーションを切り離す処理を追加

This commit is contained in:
kimura 2021-06-25 10:11:20 +09:00
parent 837591dab8
commit 6043c84fec
2 changed files with 121 additions and 7 deletions

View File

@ -27,7 +27,7 @@ public class Corn : MonoBehaviour
private bool isPop;
private Rigidbody2D rigidbody2D;
private Transform animePivotTransform;
private Transform rotationResolverTransform;
private Transform spriteTransform;
// Start is called before the first frame update
@ -35,7 +35,7 @@ public class Corn : MonoBehaviour
{
rigidbody2D = GetComponent<Rigidbody2D>();
spriteTransform = spriteRenderer.transform;
animePivotTransform = spriteRenderer.transform.parent;
rotationResolverTransform = spriteRenderer.transform.parent.parent;
spriteRenderer.sprite = cornSeedSprite;
cornSpawnTime = Time.time;
var cornPopBasicTime = 5f;
@ -49,10 +49,11 @@ public class Corn : MonoBehaviour
cornVelocity = rigidbody2D.velocity.magnitude;
cornLifeTime = Time.time - cornSpawnTime;
// アニメーション向けに回転をリセット
rotationResolverTransform.rotation = Quaternion.identity;
// コーンの回転を伝搬
spriteTransform.localRotation = transform.localRotation;
animePivotTransform.localRotation = Quaternion.Inverse(transform.localRotation);
if (cornVelocity <= 0.2f)
{
cornStopTime += Time.deltaTime;

View File

@ -31,7 +31,8 @@ Transform:
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 0.7, y: 0.7, z: 0.7}
m_Children:
- {fileID: 3310446858927984796}
- {fileID: 1445637928542328181}
- {fileID: 1581408663706319144}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -190,6 +191,37 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &4761356856374534614
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1445637928542328181}
m_Layer: 0
m_Name: RotationResolver
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1445637928542328181
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4761356856374534614}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3310446858927984796}
m_Father: {fileID: 1324329073609281160}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &5644451728073720175
GameObject:
m_ObjectHideFlags: 0
@ -213,11 +245,92 @@ Transform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5644451728073720175}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 9198528551727453440}
m_Father: {fileID: 1324329073609281160}
m_Father: {fileID: 1445637928542328181}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &8886732147384257253
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1581408663706319144}
- component: {fileID: 3813519040210009307}
m_Layer: 0
m_Name: debugTexture
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!4 &1581408663706319144
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886732147384257253}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 5.0092907, y: 5.0092907, z: 5.0092907}
m_Children: []
m_Father: {fileID: 1324329073609281160}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!212 &3813519040210009307
SpriteRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8886732147384257253}
m_Enabled: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RayTracingMode: 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: 0
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: 10907, guid: 0000000000000000f000000000000000, type: 0}
m_Color: {r: 0.7216981, g: 1, b: 0.80030245, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 0
m_Size: {x: 0.2, y: 0.2}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0