Changed PickableProjectile: physics, collider, recall behaviour
Refactored and documented files: GameManager, MainMenu
@ -911,13 +911,14 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 16ac12688a958d34983f6f0307a045ad, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
player: {fileID: 0}
|
||||
playerController: {fileID: 0}
|
||||
playerObj: {fileID: 0}
|
||||
viewDistance: 5
|
||||
viewAngle: 60
|
||||
moveSpeed: 3
|
||||
acceleration: 10
|
||||
obstacleMask:
|
||||
serializedVersion: 2
|
||||
m_Bits: 16
|
||||
--- !u!50 &7633178279901007628
|
||||
Rigidbody2D:
|
||||
serializedVersion: 5
|
||||
|
||||
@ -9,9 +9,9 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 1452460312376183192}
|
||||
- component: {fileID: -640855425046532091}
|
||||
- component: {fileID: 8375585699851212105}
|
||||
- component: {fileID: 5633092123120389871}
|
||||
- component: {fileID: 4133686727143716795}
|
||||
- component: {fileID: 4169089013277977673}
|
||||
- component: {fileID: 6960937834036335996}
|
||||
m_Layer: 0
|
||||
m_Name: PickableProjectile
|
||||
m_TagString: Projectile
|
||||
@ -32,10 +32,10 @@ Transform:
|
||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children:
|
||||
- {fileID: 7421163371325257947}
|
||||
- {fileID: 8085295793687642317}
|
||||
m_Father: {fileID: 0}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!50 &-640855425046532091
|
||||
--- !u!50 &4133686727143716795
|
||||
Rigidbody2D:
|
||||
serializedVersion: 5
|
||||
m_ObjectHideFlags: 0
|
||||
@ -47,11 +47,11 @@ Rigidbody2D:
|
||||
m_Simulated: 1
|
||||
m_UseFullKinematicContacts: 0
|
||||
m_UseAutoMass: 0
|
||||
m_Mass: 5
|
||||
m_Mass: 3
|
||||
m_LinearDamping: 0
|
||||
m_AngularDamping: 0.05
|
||||
m_GravityScale: 1
|
||||
m_Material: {fileID: 6200000, guid: 63f618adb0dc58844abe8ec1a9bd45a8, type: 2}
|
||||
m_Material: {fileID: 6200000, guid: be34b14ed2876354d9864a6e677e5d67, type: 2}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
@ -62,43 +62,7 @@ Rigidbody2D:
|
||||
m_SleepingMode: 1
|
||||
m_CollisionDetection: 0
|
||||
m_Constraints: 0
|
||||
--- !u!58 &8375585699851212105
|
||||
CircleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5993946430821065449}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 6200000, guid: 63f618adb0dc58844abe8ec1a9bd45a8, type: 2}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Radius: 0.5
|
||||
--- !u!114 &5633092123120389871
|
||||
--- !u!114 &4169089013277977673
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -131,18 +95,55 @@ MonoBehaviour:
|
||||
sleepVelocity: 0.05
|
||||
lockWhenLanded: 1
|
||||
maxBounces: 100
|
||||
minBounceSpeed: 8
|
||||
minBounceSpeed: 0.1
|
||||
restitution: 0.6
|
||||
tangentDamping: 0.85
|
||||
groundUpTolerance: 0.25
|
||||
stickDelayAfterImpact: 0.03
|
||||
recallStartDistance: 20
|
||||
recallStartDistance: 10
|
||||
recallArriveDistance: 1.4
|
||||
recallMaxSpeed: 16
|
||||
recallAcceleration: 60
|
||||
recallSpeed: 16
|
||||
recallAcceleration: 100
|
||||
drawGizmos: 1
|
||||
gizmoColor: {r: 0.2, g: 0.8, b: 1, a: 0.35}
|
||||
--- !u!1 &7253843866260996112
|
||||
--- !u!70 &6960937834036335996
|
||||
CapsuleCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 5993946430821065449}
|
||||
m_Enabled: 1
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 0}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 0
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Size: {x: 1, y: 1.3}
|
||||
m_Direction: 0
|
||||
--- !u!1 &7932273378799574310
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
@ -150,37 +151,38 @@ GameObject:
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 7421163371325257947}
|
||||
- component: {fileID: 6144931758823249624}
|
||||
- component: {fileID: 8085295793687642317}
|
||||
- component: {fileID: 45442263581513632}
|
||||
- component: {fileID: 7575539923147100530}
|
||||
m_Layer: 0
|
||||
m_Name: texture_round_0
|
||||
m_Name: tamagoching_0
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!4 &7421163371325257947
|
||||
--- !u!4 &8085295793687642317
|
||||
Transform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7253843866260996112}
|
||||
m_GameObject: {fileID: 7932273378799574310}
|
||||
serializedVersion: 2
|
||||
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||
m_LocalScale: {x: 0.096, y: 0.096, z: 0.096}
|
||||
m_LocalScale: {x: 0.15, y: 0.15, z: 0.15}
|
||||
m_ConstrainProportionsScale: 1
|
||||
m_Children: []
|
||||
m_Father: {fileID: 1452460312376183192}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
--- !u!212 &6144931758823249624
|
||||
--- !u!212 &45442263581513632
|
||||
SpriteRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7253843866260996112}
|
||||
m_GameObject: {fileID: 7932273378799574310}
|
||||
m_Enabled: 1
|
||||
m_CastShadows: 0
|
||||
m_ReceiveShadows: 0
|
||||
@ -215,17 +217,105 @@ SpriteRenderer:
|
||||
m_AutoUVMaxDistance: 0.5
|
||||
m_AutoUVMaxAngle: 89
|
||||
m_LightmapParameters: {fileID: 0}
|
||||
m_SortingLayerID: 0
|
||||
m_SortingLayer: 0
|
||||
m_SortingLayerID: 824449243
|
||||
m_SortingLayer: 1
|
||||
m_SortingOrder: 0
|
||||
m_Sprite: {fileID: -2920598655614517764, guid: 698ae6f0523d818459c87d916f78d1e4, type: 3}
|
||||
m_Sprite: {fileID: -3550973283731103874, guid: 4db2fbc7e829aec46b75cceb207881b9, type: 3}
|
||||
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
||||
m_FlipX: 0
|
||||
m_FlipY: 0
|
||||
m_DrawMode: 0
|
||||
m_Size: {x: 10.24, y: 10.24}
|
||||
m_Size: {x: 6.9, y: 8.8}
|
||||
m_AdaptiveModeThreshold: 0.5
|
||||
m_SpriteTileMode: 0
|
||||
m_WasSpriteAssigned: 1
|
||||
m_MaskInteraction: 0
|
||||
m_SpriteSortPoint: 0
|
||||
--- !u!60 &7575539923147100530
|
||||
PolygonCollider2D:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 7932273378799574310}
|
||||
m_Enabled: 0
|
||||
serializedVersion: 3
|
||||
m_Density: 1
|
||||
m_Material: {fileID: 6200000, guid: 63f618adb0dc58844abe8ec1a9bd45a8, type: 2}
|
||||
m_IncludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_ExcludeLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 0
|
||||
m_LayerOverridePriority: 0
|
||||
m_ForceSendLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ForceReceiveLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_ContactCaptureLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_CallbackLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_IsTrigger: 0
|
||||
m_UsedByEffector: 0
|
||||
m_CompositeOperation: 1
|
||||
m_CompositeOrder: 0
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_SpriteTilingProperty:
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
oldSize: {x: 6.9, y: 8.8}
|
||||
newSize: {x: 6.9, y: 8.8}
|
||||
adaptiveTilingThreshold: 0.5
|
||||
drawMode: 0
|
||||
adaptiveTiling: 0
|
||||
m_AutoTiling: 0
|
||||
m_Points:
|
||||
m_Paths:
|
||||
- - {x: 3.31, y: -2.11}
|
||||
- {x: 3.4399998, y: -1.28}
|
||||
- {x: 3.4199998, y: -0.48999998}
|
||||
- {x: 3.35, y: 0.02}
|
||||
- {x: 3.22, y: 0.61}
|
||||
- {x: 3.09, y: 1.0799999}
|
||||
- {x: 2.86, y: 1.7199999}
|
||||
- {x: 2.57, y: 2.3899999}
|
||||
- {x: 2.22, y: 3}
|
||||
- {x: 1.88, y: 3.49}
|
||||
- {x: 1.31, y: 4.0499997}
|
||||
- {x: 0.78999996, y: 4.3199997}
|
||||
- {x: 0.29999998, y: 4.4}
|
||||
- {x: -0.11, y: 4.35}
|
||||
- {x: -0.45999998, y: 4.27}
|
||||
- {x: -0.91999996, y: 4.02}
|
||||
- {x: -1.17, y: 3.83}
|
||||
- {x: -1.4499999, y: 3.57}
|
||||
- {x: -1.73, y: 3.26}
|
||||
- {x: -1.9699999, y: 2.96}
|
||||
- {x: -2.3, y: 2.47}
|
||||
- {x: -2.6299999, y: 1.89}
|
||||
- {x: -2.86, y: 1.41}
|
||||
- {x: -3.1299999, y: 0.71999997}
|
||||
- {x: -3.3, y: 0.12}
|
||||
- {x: -3.3899999, y: -0.39999998}
|
||||
- {x: -3.4299998, y: -0.71}
|
||||
- {x: -3.4399998, y: -1.1999999}
|
||||
- {x: -3.3799999, y: -1.79}
|
||||
- {x: -3.1999998, y: -2.47}
|
||||
- {x: -2.96, y: -2.9199998}
|
||||
- {x: -2.62, y: -3.36}
|
||||
- {x: -2.1599998, y: -3.78}
|
||||
- {x: -1.37, y: -4.18}
|
||||
- {x: -0.61, y: -4.35}
|
||||
- {x: -0.06, y: -4.38}
|
||||
- {x: 0.42, y: -4.37}
|
||||
- {x: 1.29, y: -4.21}
|
||||
- {x: 1.9399999, y: -3.8799999}
|
||||
- {x: 2.54, y: -3.4199998}
|
||||
- {x: 2.96, y: -2.8799999}
|
||||
m_UseDelaunayMesh: 0
|
||||
|
||||
@ -2664,7 +2664,7 @@ MonoBehaviour:
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
moveSpeed: 8
|
||||
accel: 40
|
||||
accel: 80
|
||||
decel: 20
|
||||
maxJumpHeight: 5
|
||||
jumpCooldown: 0.1
|
||||
@ -2683,9 +2683,9 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: 4e22b17be0e015040bb8efb0e96fa590, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
projectilePrefab: {fileID: -7990430535451479416, guid: 7fd3a37dc702ece42b51e5867473f0ff, type: 3}
|
||||
projectilePrefab: {fileID: 0}
|
||||
spawnIfMissing: 0
|
||||
attachPoint: {fileID: 6550761234898366363}
|
||||
attachPoint: {fileID: 6550761234593413718}
|
||||
actionKey: 102
|
||||
throwSpeed: 20
|
||||
--- !u!1 &6550761235546795891
|
||||
|
||||
@ -748,7 +748,6 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: a051668844a44474c99441ddb8b727f0, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
playerObj: {fileID: 0}
|
||||
playerPrefab: {fileID: 6550761235523395909, guid: 5e2f7649694807646a991b80b725b2e5, type: 3}
|
||||
playerPrefabResourcePath: Prefabs/Player
|
||||
--- !u!4 &1378233909
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
|
||||
public class BGParallax : MonoBehaviour
|
||||
{
|
||||
[SerializeField] private float parallaxFactor = 0.5f;
|
||||
[SerializeField][Range(-1f, 3f)] private float parallaxFactorX = 0.5f;
|
||||
[SerializeField][Range(-1f, 3f)] private float parallaxFactorY = 0.5f;
|
||||
[SerializeField] private bool lockYAxis = false;
|
||||
private Transform cameraTransform;
|
||||
private Vector3 previousCameraPosition;
|
||||
|
||||
@ -15,7 +17,10 @@ public class BGParallax : MonoBehaviour
|
||||
void LateUpdate()
|
||||
{
|
||||
Vector3 delta = cameraTransform.position - previousCameraPosition;
|
||||
transform.position += new Vector3(delta.x * parallaxFactor, delta.y * parallaxFactor, 0);
|
||||
if (lockYAxis)
|
||||
transform.position += new Vector3(delta.x * parallaxFactorX, 0, 0);
|
||||
else
|
||||
transform.position += new Vector3(delta.x * parallaxFactorX, delta.y * parallaxFactorY, 0);
|
||||
previousCameraPosition = cameraTransform.position;
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,8 +50,8 @@ public class CameraFollow2D : MonoBehaviour
|
||||
private Transform ResolvePlayer()
|
||||
{
|
||||
// 1) Через GameManager, если он есть и уже создал игрока
|
||||
if (GameManager.Instance && GameManager.Instance.playerObj)
|
||||
return GameManager.Instance.playerObj.transform;
|
||||
if (GameManager.Instance && GameManager.Instance.PlayerObj)
|
||||
return GameManager.Instance.PlayerObj.transform;
|
||||
|
||||
// 2) Фолбэк по тегу (если префаб помечен "Player")
|
||||
var go = GameObject.FindWithTag("Player");
|
||||
|
||||
@ -6,10 +6,10 @@ public class EnemyController : MonoBehaviour
|
||||
public GameObject playerObj;
|
||||
public float viewDistance = 5f;
|
||||
public float viewAngle = 60f;
|
||||
public float moveSpeed = 3f;
|
||||
public float moveSpeed = 4f;
|
||||
public float acceleration = 10f;
|
||||
|
||||
private LayerMask obstacleMask = ~0;
|
||||
[SerializeField] private LayerMask obstacleMask;
|
||||
private Animator animator;
|
||||
private Rigidbody2D rb;
|
||||
private Vector2 targetVelocity = Vector2.zero;
|
||||
@ -19,51 +19,36 @@ public class EnemyController : MonoBehaviour
|
||||
rb = GetComponent<Rigidbody2D>();
|
||||
animator = GetComponent<Animator>();
|
||||
|
||||
playerObj = GameManager.Instance.playerObj;
|
||||
playerObj = GameManager.Instance.PlayerObj;
|
||||
if (playerObj == null)
|
||||
{
|
||||
playerObj = GameObject.FindGameObjectWithTag("Player");
|
||||
//Debug.Log("Player not found!");
|
||||
}
|
||||
}
|
||||
|
||||
void FixedUpdate()
|
||||
{
|
||||
if (playerObj != null && PlayerInSight())
|
||||
if (!playerObj) return;
|
||||
|
||||
Vector2 playerCenter = (Vector2)playerObj.transform.position;
|
||||
|
||||
if (PlayerInSight())
|
||||
{
|
||||
//Debug.Log("Scanned player");
|
||||
//Debug.Log($"Player: {player}\n PlayerInSight: {PlayerInSight()}");
|
||||
Vector2 dir = ((Vector2)playerObj.transform.position - rb.position).normalized;
|
||||
targetVelocity = dir * moveSpeed;
|
||||
Vector2 toPlayer = playerCenter - (Vector2)transform.position;
|
||||
float dist = toPlayer.magnitude;
|
||||
|
||||
if (dist > 0.01f)
|
||||
rb.linearVelocity = toPlayer / dist * moveSpeed;
|
||||
else
|
||||
rb.linearVelocity = Vector2.zero;
|
||||
}
|
||||
else
|
||||
{
|
||||
//Debug.Log("No player in sight");
|
||||
targetVelocity = Vector2.zero;
|
||||
rb.linearVelocity = Vector2.MoveTowards(
|
||||
rb.linearVelocity, Vector2.zero, acceleration * Time.fixedDeltaTime);
|
||||
}
|
||||
|
||||
rb.linearVelocity = Vector2.MoveTowards(rb.linearVelocity, targetVelocity, acceleration * Time.fixedDeltaTime);
|
||||
animator.SetFloat("Speed", Mathf.Abs(targetVelocity.magnitude));
|
||||
}
|
||||
|
||||
private bool PlayerInSight()
|
||||
{
|
||||
Transform player = playerObj.transform;
|
||||
Vector2 directionToPlayer = player.position - transform.position;
|
||||
float distanceToPlayer = directionToPlayer.magnitude;
|
||||
|
||||
if (distanceToPlayer > viewDistance)
|
||||
return false;
|
||||
|
||||
float angle = Vector2.Angle(transform.right, directionToPlayer);
|
||||
if (angle > viewAngle / 2f)
|
||||
return false;
|
||||
|
||||
RaycastHit2D hit = Physics2D.Raycast(transform.position, directionToPlayer.normalized, distanceToPlayer, obstacleMask);
|
||||
if (hit.collider != null && hit.collider.transform != player)
|
||||
return false;
|
||||
|
||||
return true;
|
||||
animator.SetFloat("Speed", Mathf.Abs(rb.linearVelocity.magnitude));
|
||||
}
|
||||
|
||||
void OnCollisionEnter2D(Collision2D collision)
|
||||
@ -89,35 +74,34 @@ public class EnemyController : MonoBehaviour
|
||||
else if (collision.collider.CompareTag("Projectile")) Die();
|
||||
}
|
||||
|
||||
private void OnDrawGizmos()
|
||||
private bool PlayerInSight()
|
||||
{
|
||||
if (playerObj == null) return;
|
||||
if (!playerObj) return false;
|
||||
|
||||
Vector2 origin = transform.position;
|
||||
Vector2 directionToPlayer = (playerObj.transform.position - transform.position);
|
||||
float distanceToPlayer = directionToPlayer.magnitude;
|
||||
Transform player = playerObj.transform;
|
||||
|
||||
Vector2 rightDir = Quaternion.Euler(0, 0, +viewAngle / 2f) * transform.right;
|
||||
Vector2 leftDir = Quaternion.Euler(0, 0, -viewAngle / 2f) * transform.right;
|
||||
Vector2 eyePos = new(rb.position.x, rb.position.y + 1.45f);
|
||||
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawLine(origin, origin + (rightDir * viewDistance));
|
||||
Gizmos.DrawLine(origin, origin + (leftDir * viewDistance));
|
||||
Vector2 toPlayer = (Vector2)player.position - eyePos;
|
||||
float dist = toPlayer.magnitude;
|
||||
if (dist > viewDistance) return false;
|
||||
|
||||
Gizmos.DrawWireSphere(origin, viewDistance);
|
||||
Vector2 forward = (Vector2)transform.right;
|
||||
|
||||
if (distanceToPlayer <= viewDistance)
|
||||
{
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawLine(origin, playerObj.transform.position);
|
||||
float cosHalf = Mathf.Cos(0.5f * viewAngle * Mathf.Deg2Rad);
|
||||
float dot = Vector2.Dot(forward.normalized, toPlayer / Mathf.Max(dist, 1e-6f));
|
||||
if (dot < cosHalf) return false;
|
||||
|
||||
RaycastHit2D hit = Physics2D.Raycast(origin, directionToPlayer.normalized, distanceToPlayer);
|
||||
if (hit.collider != null)
|
||||
{
|
||||
Gizmos.color = Color.green;
|
||||
Gizmos.DrawSphere(hit.point, 0.05f);
|
||||
}
|
||||
}
|
||||
int mask = obstacleMask;
|
||||
mask &= ~(1 << gameObject.layer);
|
||||
mask &= ~(1 << playerObj.layer);
|
||||
|
||||
Vector2 origin = eyePos + forward.normalized * 0.05f;
|
||||
|
||||
RaycastHit2D hit = Physics2D.Raycast(origin, toPlayer.normalized, dist, mask);
|
||||
if (hit.collider != null) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void Die()
|
||||
@ -125,4 +109,29 @@ public class EnemyController : MonoBehaviour
|
||||
Destroy(gameObject);
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
private void OnDrawGizmos()
|
||||
{
|
||||
if (!playerObj) return;
|
||||
|
||||
Vector2 origin = new(rb.position.x, rb.position.y + 1.45f);
|
||||
Vector2 forward = (Vector2)transform.right;
|
||||
float half = viewAngle * 0.5f;
|
||||
|
||||
Vector2 edgeA = (Vector2)(Quaternion.Euler(0, 0, +half) * (Vector3)forward);
|
||||
Vector2 edgeB = (Vector2)(Quaternion.Euler(0, 0, -half) * (Vector3)forward);
|
||||
|
||||
Gizmos.color = Color.yellow;
|
||||
Gizmos.DrawLine(origin, origin + edgeA * viewDistance);
|
||||
Gizmos.DrawLine(origin, origin + edgeB * viewDistance);
|
||||
Gizmos.DrawWireSphere(origin, viewDistance);
|
||||
|
||||
Vector2 toPlayer = (Vector2)playerObj.transform.position - origin;
|
||||
if (toPlayer.magnitude <= viewDistance)
|
||||
{
|
||||
Gizmos.color = Color.red;
|
||||
Gizmos.DrawLine(origin, playerObj.transform.position);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -7,20 +7,22 @@ using UnityEngine.SceneManagement;
|
||||
public class GameManager : MonoBehaviour
|
||||
{
|
||||
public static GameManager Instance { get; private set; }
|
||||
|
||||
[Header("Пауза")]
|
||||
public bool IsPaused { get; private set; }
|
||||
public event Action<bool> PauseStateChanged;
|
||||
|
||||
public int world { get; private set; } = 1;
|
||||
public int stage { get; private set; } = 1;
|
||||
public int stagesByWorld { get; private set; } = 5;
|
||||
public int lives { get; private set; } = 3;
|
||||
public int coins { get; private set; } = 0;
|
||||
|
||||
public GameObject playerObj { get; private set; }
|
||||
[Header("Информация для игры")]
|
||||
public int World { get; private set; } = 1;
|
||||
public int Stage { get; private set; } = 1;
|
||||
public int StagesByWorld { get; private set; } = 5;
|
||||
public int Lives { get; private set; } = 3;
|
||||
public int Coins { get; private set; } = 0;
|
||||
|
||||
[Header("Игрок")]
|
||||
[SerializeField] private GameObject playerPrefab;
|
||||
[SerializeField] private string playerPrefabResourcePath = "Prefabs/Player";
|
||||
|
||||
public GameObject PlayerObj { get; private set; }
|
||||
private bool _shouldSpawnPlayer;
|
||||
|
||||
private void OnEnable() => SceneManager.sceneLoaded += OnSceneLoaded;
|
||||
@ -30,6 +32,9 @@ public class GameManager : MonoBehaviour
|
||||
|
||||
public event Action<int> CoinsChanged;
|
||||
|
||||
//---------------------------
|
||||
// Singleton
|
||||
//---------------------------
|
||||
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
|
||||
private static void Bootstrap()
|
||||
{
|
||||
@ -57,6 +62,9 @@ public class GameManager : MonoBehaviour
|
||||
{
|
||||
if (Instance == this) Instance = null;
|
||||
}
|
||||
//---------------------------
|
||||
//
|
||||
//---------------------------
|
||||
|
||||
//private void Start()
|
||||
//{
|
||||
@ -69,6 +77,11 @@ public class GameManager : MonoBehaviour
|
||||
// }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// Поиск префаба игрока.
|
||||
/// Если не найдет префаб из инспектора, ищет в "Resources"
|
||||
/// </summary>
|
||||
/// <returns> Префаб игрока </returns>
|
||||
private GameObject ResolvePlayerPrefab()
|
||||
{
|
||||
if (playerPrefab != null) return playerPrefab;
|
||||
@ -83,20 +96,35 @@ public class GameManager : MonoBehaviour
|
||||
return loaded;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Начало новой игры.
|
||||
/// Загружает первый уровень.
|
||||
/// Устанавливает жизни на 3, монеты на 0
|
||||
/// </summary>
|
||||
public void NewGame()
|
||||
{
|
||||
lives = 3;
|
||||
coins = 0;
|
||||
CoinsChanged?.Invoke(coins);
|
||||
Lives = 3;
|
||||
Coins = 0;
|
||||
CoinsChanged?.Invoke(Coins);
|
||||
LoadLevel(1, 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Окончание игры.
|
||||
/// Загружает сцену главного меню
|
||||
/// </summary>
|
||||
public void GameOver() => LoadScene("MainMenu", false);
|
||||
|
||||
/// <summary>
|
||||
/// Загрузка уровня по данным.
|
||||
/// Загружает уровень по номерам мира и уровня
|
||||
/// </summary>
|
||||
/// <param name="world">Номер мира</param>
|
||||
/// <param name="stage">Номер уровня</param>
|
||||
public void LoadLevel(int world, int stage)
|
||||
{
|
||||
this.world = world;
|
||||
this.stage = stage;
|
||||
this.World = world;
|
||||
this.Stage = stage;
|
||||
|
||||
string sceneName = $"{world}-{stage}";
|
||||
if (SceneInBuildSettingsExists(sceneName))
|
||||
@ -110,6 +138,15 @@ public class GameManager : MonoBehaviour
|
||||
LoadScene("MainMenu", false);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Загрузка сцены по названию.
|
||||
/// Вызывает одноименный метод в SceneManager.
|
||||
/// Может загружать сцены с UI и без.
|
||||
/// В сценах без UI игрок не спавнится
|
||||
/// </summary>
|
||||
/// <param name="sceneName">Строковое название сцены</param>
|
||||
/// <param name="useUI">Использовать ли UI</param>
|
||||
public void LoadScene(string sceneName, bool useUI = true)
|
||||
{
|
||||
_shouldSpawnPlayer = true;
|
||||
@ -129,50 +166,75 @@ public class GameManager : MonoBehaviour
|
||||
TrySpawnPlayerForActiveScene();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод для спавна игрока.
|
||||
/// Ищет первый спавнпоинт, спавнит игрока на его позиции.
|
||||
/// Если на карте есть объект игрока, удаляет его и спавнит свой
|
||||
/// </summary>
|
||||
private void TrySpawnPlayerForActiveScene()
|
||||
{
|
||||
if (!_shouldSpawnPlayer) return;
|
||||
var spawn = FindFirstObjectByType<PlayerSpawn>();
|
||||
PlayerSpawn spawn = FindFirstObjectByType<PlayerSpawn>();
|
||||
Vector3 pos = spawn ? spawn.transform.position : new Vector3(0, 1.3f, 0);
|
||||
Quaternion rot = spawn ? spawn.transform.rotation : Quaternion.identity;
|
||||
|
||||
playerObj = GameObject.FindGameObjectWithTag("Player");
|
||||
if (playerObj != null) Destroy(playerObj);
|
||||
PlayerObj = GameObject.FindGameObjectWithTag("Player");
|
||||
if (PlayerObj != null) Destroy(PlayerObj);
|
||||
|
||||
var prefab = ResolvePlayerPrefab();
|
||||
if (prefab == null) return;
|
||||
|
||||
playerObj = Instantiate(prefab, pos, rot);
|
||||
SceneManager.MoveGameObjectToScene(playerObj, SceneManager.GetActiveScene());
|
||||
PlayerObj = Instantiate(prefab, pos, rot);
|
||||
SceneManager.MoveGameObjectToScene(PlayerObj, SceneManager.GetActiveScene());
|
||||
|
||||
PlayerSpawned?.Invoke(playerObj);
|
||||
PlayerSpawned?.Invoke(PlayerObj);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Метод переходна на следующий уровень
|
||||
/// </summary>
|
||||
public void NextLevel()
|
||||
{
|
||||
if (stage >= stagesByWorld) LoadLevel(world + 1, 1);
|
||||
else LoadLevel(world, stage + 1);
|
||||
if (Stage >= StagesByWorld) LoadLevel(World + 1, 1);
|
||||
else LoadLevel(World, Stage + 1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод сброса уровня.
|
||||
/// При сбросе также сбрасывает монеты и отнимает жизни
|
||||
/// </summary>
|
||||
public void ResetLevel()
|
||||
{
|
||||
lives--;
|
||||
Lives--;
|
||||
|
||||
Coins = 0;
|
||||
CoinsChanged?.Invoke(Coins);
|
||||
|
||||
//print($"Lives: {lives}");
|
||||
if (lives > 0) LoadLevel(world, stage);
|
||||
if (Lives > 0) LoadLevel(World, Stage);
|
||||
else GameOver();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Метод добавления монеты
|
||||
/// </summary>
|
||||
public void AddCoin()
|
||||
{
|
||||
coins++;
|
||||
if (coins >= 100)
|
||||
Coins++;
|
||||
if (Coins >= 100)
|
||||
{
|
||||
coins = 0;
|
||||
Coins = 0;
|
||||
AddLife();
|
||||
}
|
||||
CoinsChanged?.Invoke(coins);
|
||||
CoinsChanged?.Invoke(Coins);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод паузы игры.
|
||||
/// Ставит на паузу все SFX и саму игру
|
||||
/// </summary>
|
||||
/// <param name="pause">Ставить ли на паузу</param>
|
||||
public void SetPause(bool pause)
|
||||
{
|
||||
if (IsPaused == pause) return;
|
||||
@ -184,10 +246,18 @@ public class GameManager : MonoBehaviour
|
||||
PauseStateChanged?.Invoke(IsPaused);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод переключателя паузы
|
||||
/// </summary>
|
||||
public void TogglePause() => SetPause(!IsPaused);
|
||||
|
||||
public void AddLife() => lives++;
|
||||
public void AddLife() => Lives++;
|
||||
|
||||
/// <summary>
|
||||
/// Метод проверки сцены на существование в настройках билда
|
||||
/// </summary>
|
||||
/// <param name="sceneName">Строковое название сцены</param>
|
||||
/// <returns></returns>
|
||||
private static bool SceneInBuildSettingsExists(string sceneName)
|
||||
{
|
||||
int count = SceneManager.sceneCountInBuildSettings;
|
||||
|
||||
@ -3,7 +3,7 @@ using UnityEngine.UI;
|
||||
|
||||
public class MainMenu : MonoBehaviour
|
||||
{
|
||||
[Header("Buttons")]
|
||||
[Header("Кнопки")]
|
||||
[SerializeField] private Button newGameButton;
|
||||
[SerializeField] private Button quitButton;
|
||||
|
||||
@ -17,24 +17,30 @@ public class MainMenu : MonoBehaviour
|
||||
Bootstrap();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод для загрузки элементов сцены.
|
||||
/// Вешает события на кнопки
|
||||
/// </summary>
|
||||
public void Bootstrap()
|
||||
{
|
||||
if (newGameButton) newGameButton.onClick.AddListener(OnNewGame);
|
||||
if (quitButton) quitButton.onClick.AddListener(OnQuit);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод начала новой игры
|
||||
/// </summary>
|
||||
private void OnNewGame()
|
||||
{
|
||||
|
||||
GameManager.Instance.NewGame();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Метод выхода из игры
|
||||
/// </summary>
|
||||
private void OnQuit()
|
||||
{
|
||||
#if UNITY_EDITOR
|
||||
UnityEditor.EditorApplication.isPlaying = false;
|
||||
#else
|
||||
Application.Quit();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using System.Collections;
|
||||
#if ENABLE_INPUT_SYSTEM
|
||||
using UnityEngine.InputSystem;
|
||||
#endif
|
||||
@ -70,7 +71,7 @@ public class PauseMenu : MonoBehaviour
|
||||
}
|
||||
}
|
||||
|
||||
private System.Collections.IEnumerator Fade(CanvasGroup cg, float target, float duration)
|
||||
private IEnumerator Fade(CanvasGroup cg, float target, float duration)
|
||||
{
|
||||
float start = cg.alpha;
|
||||
float t = 0f;
|
||||
|
||||
@ -32,7 +32,7 @@ public class PickableProjectile : BasicProjectile
|
||||
public float recallStartDistance = 8f;
|
||||
[Tooltip("На этой дистанции от руки считаем, что прилетел и подбираем.")]
|
||||
public float recallArriveDistance = 1f;
|
||||
public float recallMaxSpeed = 16f;
|
||||
public float recallSpeed = 16f;
|
||||
public float recallAcceleration = 60f;
|
||||
|
||||
[Header("Gizmos")]
|
||||
@ -85,7 +85,12 @@ public class PickableProjectile : BasicProjectile
|
||||
BecomeGrounded(null);
|
||||
}
|
||||
|
||||
// Бумеранг только если снаряд когда-то уже был в руке
|
||||
if ((CurrentState == State.Airborne || CurrentState == State.Returning) && rb.linearVelocity.sqrMagnitude > 0.0001f)
|
||||
transform.up = rb.linearVelocity.normalized;
|
||||
|
||||
if (CurrentState == State.Airborne && rb.linearVelocity.magnitude < 0.1f)
|
||||
BecomeGrounded(null);
|
||||
|
||||
if (hadBeenHeld && CurrentState != State.Held)
|
||||
HandleRecallToPlayer();
|
||||
}
|
||||
@ -182,7 +187,7 @@ public class PickableProjectile : BasicProjectile
|
||||
rb.angularVelocity = 0f;
|
||||
rb.AddForce(dir * finalSpeed * rb.mass, ForceMode2D.Impulse);
|
||||
|
||||
transform.right = dir;
|
||||
transform.up = dir;
|
||||
transform.localScale = baseLocalScale;
|
||||
|
||||
if (throwOwner != null && ignoreOwnerTimeOnThrow > 0f)
|
||||
@ -210,17 +215,26 @@ public class PickableProjectile : BasicProjectile
|
||||
if (Time.time - lastImpactTime < stickDelayAfterImpact)
|
||||
return true;
|
||||
|
||||
var v = rb.linearVelocity;
|
||||
Vector2 v = rb.linearVelocity;
|
||||
float speed = v.magnitude;
|
||||
if (speed < minBounceSpeed) return false;
|
||||
|
||||
Vector2 avgNormal = Vector2.up;
|
||||
float wsum = 0f;
|
||||
float minSeparation = float.PositiveInfinity;
|
||||
|
||||
if (collision.contactCount > 0)
|
||||
{
|
||||
avgNormal = Vector2.zero;
|
||||
Vector2 sum = Vector2.zero;
|
||||
for (int i = 0; i < collision.contactCount; i++)
|
||||
avgNormal += collision.GetContact(i).normal;
|
||||
avgNormal.Normalize();
|
||||
{
|
||||
var cp = collision.GetContact(i);
|
||||
float w = Mathf.Max(0.0001f, Mathf.Abs(cp.normalImpulse));
|
||||
sum += cp.normal * w;
|
||||
wsum += w;
|
||||
if (cp.separation < minSeparation) minSeparation = cp.separation;
|
||||
}
|
||||
avgNormal = (wsum > 0f ? sum / wsum : sum).normalized;
|
||||
}
|
||||
|
||||
Vector2 reflected = Vector2.Reflect(v, avgNormal) * restitution;
|
||||
@ -231,10 +245,15 @@ public class PickableProjectile : BasicProjectile
|
||||
reflected = vn + vt * tangentDamping;
|
||||
|
||||
rb.linearVelocity = reflected;
|
||||
rb.position += n * 0.005f;
|
||||
|
||||
float pushOut = 0.005f;
|
||||
if (minSeparation < 0f) pushOut = Mathf.Max(pushOut, -minSeparation + 0.001f);
|
||||
rb.position += n * pushOut;
|
||||
|
||||
if (reflected.sqrMagnitude > 0.0001f)
|
||||
transform.up = reflected.normalized;
|
||||
|
||||
bounceCounter++;
|
||||
|
||||
if (bounceCounter >= maxBounces)
|
||||
return false;
|
||||
|
||||
@ -275,41 +294,57 @@ public class PickableProjectile : BasicProjectile
|
||||
GameObject playerGo = lastKnownHolder;
|
||||
|
||||
if (playerGo == null || !playerGo.activeInHierarchy)
|
||||
playerGo = (GameManager.Instance && GameManager.Instance.playerObj)
|
||||
? GameManager.Instance.playerObj
|
||||
playerGo = (GameManager.Instance && GameManager.Instance.PlayerObj)
|
||||
? GameManager.Instance.PlayerObj
|
||||
: GameObject.FindWithTag("Player");
|
||||
|
||||
if (!playerGo) return;
|
||||
|
||||
var hand = ResolveAttachPoint(playerGo);
|
||||
var attachPoint = ResolveAttachPoint(playerGo);
|
||||
|
||||
Vector2 toHand = (Vector2)hand.position - rb.position;
|
||||
float dist = toHand.magnitude;
|
||||
bool isVisible = false;
|
||||
var mainCamera = Camera.main;
|
||||
float margin = 0.1f;
|
||||
|
||||
if (dist > recallStartDistance)
|
||||
if (mainCamera)
|
||||
{
|
||||
if (CurrentState != State.Returning)
|
||||
Vector3 vp = mainCamera.WorldToViewportPoint(transform.position);
|
||||
isVisible = vp.x >= -margin && vp.x <= 1f + margin
|
||||
&& vp.y >= -margin && vp.y <= 1f + margin;
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector2 toOwnerTest = (Vector2)attachPoint.position - rb.position;
|
||||
isVisible = (toOwnerTest.magnitude <= recallStartDistance);
|
||||
}
|
||||
|
||||
Vector2 toOwner = (Vector2)attachPoint.position - rb.position;
|
||||
float dist = toOwner.magnitude;
|
||||
|
||||
if (CurrentState != State.Returning)
|
||||
{
|
||||
if (!isVisible)
|
||||
{
|
||||
CurrentState = State.Returning;
|
||||
rb.bodyType = RigidbodyType2D.Dynamic;
|
||||
col.enabled = false;
|
||||
}
|
||||
|
||||
Vector2 desired = toHand.normalized * recallMaxSpeed;
|
||||
rb.linearVelocity = Vector2.MoveTowards(
|
||||
rb.linearVelocity, desired, recallAcceleration * Time.fixedDeltaTime);
|
||||
|
||||
if (rb.linearVelocity.sqrMagnitude > 0.01f)
|
||||
transform.right = rb.linearVelocity.normalized;
|
||||
|
||||
if (dist <= recallArriveDistance)
|
||||
TryPickup(playerGo);
|
||||
}
|
||||
else if (CurrentState == State.Returning)
|
||||
{
|
||||
CurrentState = rb.bodyType == RigidbodyType2D.Dynamic ? State.Airborne : State.Grounded;
|
||||
col.enabled = true;
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//float speed = rb.linearVelocity.magnitude;
|
||||
//if (speed < 8f) speed = recallSpeed;
|
||||
Vector2 dir = (dist > 0.001f) ? (toOwner / dist) : rb.linearVelocity.normalized;
|
||||
rb.linearVelocity = dir * recallSpeed; //* speed;
|
||||
|
||||
if (rb.linearVelocity.sqrMagnitude > 0.01f)
|
||||
transform.up = rb.linearVelocity.normalized;
|
||||
|
||||
if (dist <= recallArriveDistance)
|
||||
TryPickup(playerGo);
|
||||
}
|
||||
|
||||
#if UNITY_EDITOR
|
||||
|
||||
@ -24,9 +24,9 @@ public class UITextController : MonoBehaviour
|
||||
|
||||
void Start()
|
||||
{
|
||||
livesCount = GameManager.Instance.lives;
|
||||
coinsCount = GameManager.Instance.coins;
|
||||
levelNumber = $"{GameManager.Instance.world}-{GameManager.Instance.stage}";
|
||||
livesCount = GameManager.Instance.Lives;
|
||||
coinsCount = GameManager.Instance.Coins;
|
||||
levelNumber = $"{GameManager.Instance.World}-{GameManager.Instance.Stage}";
|
||||
|
||||
livesText.text = livesCount.ToString();
|
||||
coinsText.text = coinsCount.ToString();
|
||||
|
||||
BIN
Assets/Resources/Sprites/Crab_enemy_full.png
Normal file
|
After Width: | Height: | Size: 576 KiB |
156
Assets/Resources/Sprites/Crab_enemy_full.png.meta
Normal file
@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7ea9d820e4038ff458b29cbad5755adc
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -6185596936409961069
|
||||
second: Crab_enemy_full_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Crab_enemy_full_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 101
|
||||
y: 399
|
||||
width: 840
|
||||
height: 643
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 39d2a89eb58582aa0800000000000000
|
||||
internalID: -6185596936409961069
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Crab_enemy_full_0: -6185596936409961069
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 4.0 KiB After Width: | Height: | Size: 4.0 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 792 B After Width: | Height: | Size: 792 B |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 980 B After Width: | Height: | Size: 980 B |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 861 B After Width: | Height: | Size: 861 B |
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 968 B After Width: | Height: | Size: 968 B |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 674 B After Width: | Height: | Size: 674 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
Assets/Resources/Sprites/Props/Flora/Oak.png
Normal file
|
After Width: | Height: | Size: 736 KiB |
156
Assets/Resources/Sprites/Props/Flora/Oak.png.meta
Normal file
@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ee663851b33d517449a998d2883e1365
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -4258907507027704593
|
||||
second: Oak_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Oak_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 51
|
||||
width: 1024
|
||||
height: 1478
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: fe48e50ef2255e4c0800000000000000
|
||||
internalID: -4258907507027704593
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Oak_0: -4258907507027704593
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Sprites/Props/Flora/Spruce.png
Normal file
|
After Width: | Height: | Size: 762 KiB |
156
Assets/Resources/Sprites/Props/Flora/Spruce.png.meta
Normal file
@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a05c19bd19867f143b88aaca67608bd3
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 3549203890467312553
|
||||
second: Spruce_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Spruce_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 51
|
||||
y: 0
|
||||
width: 927
|
||||
height: 1536
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: 9a31db6422e414130800000000000000
|
||||
internalID: 3549203890467312553
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Spruce_0: 3549203890467312553
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
BIN
Assets/Resources/Sprites/Props/Flora/Spruce_1.png
Normal file
|
After Width: | Height: | Size: 692 KiB |
156
Assets/Resources/Sprites/Props/Flora/Spruce_1.png.meta
Normal file
@ -0,0 +1,156 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 38720f0da96c0c34199aa136bbf169d4
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: 8374419156831949758
|
||||
second: Spruce_1_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
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
|
||||
flipGreenChannel: 0
|
||||
isReadable: 0
|
||||
streamingMipmaps: 0
|
||||
streamingMipmapsPriority: 0
|
||||
vTOnly: 0
|
||||
ignoreMipmapLimit: 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: 1
|
||||
nPOTScale: 0
|
||||
lightmap: 0
|
||||
compressionQuality: 50
|
||||
spriteMode: 2
|
||||
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
|
||||
swizzle: 50462976
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Standalone
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
spriteSheet:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Spruce_1_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 49
|
||||
y: 0
|
||||
width: 925
|
||||
height: 1536
|
||||
alignment: 0
|
||||
pivot: {x: 0, y: 0}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline: []
|
||||
physicsShape: []
|
||||
tessellationDetail: -1
|
||||
bones: []
|
||||
spriteID: eb3d1338ad9e73470800000000000000
|
||||
internalID: 8374419156831949758
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID:
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Spruce_1_0: 8374419156831949758
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 5.9 KiB |
BIN
Assets/Resources/Sprites/tamagoching.png
Normal file
|
After Width: | Height: | Size: 681 KiB |
@ -1,10 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 7f76a84576351334b8517b4cd5666786
|
||||
guid: 4db2fbc7e829aec46b75cceb207881b9
|
||||
TextureImporter:
|
||||
internalIDToNameTable:
|
||||
- first:
|
||||
213: -2413806693520163455
|
||||
second: Circle
|
||||
213: -3550973283731103874
|
||||
second: tamagoching_0
|
||||
externalObjects: {}
|
||||
serializedVersion: 13
|
||||
mipmaps:
|
||||
@ -51,12 +51,12 @@ TextureImporter:
|
||||
spriteMeshType: 1
|
||||
alignment: 0
|
||||
spritePivot: {x: 0.5, y: 0.5}
|
||||
spritePixelsToUnits: 256
|
||||
spritePixelsToUnits: 100
|
||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||
spriteGenerateFallbackPhysicsShape: 1
|
||||
alphaUsage: 1
|
||||
alphaIsTransparency: 1
|
||||
spriteTessellationDetail: 0
|
||||
spriteTessellationDetail: -1
|
||||
textureType: 8
|
||||
textureShape: 1
|
||||
singleChannelComponent: 0
|
||||
@ -68,7 +68,7 @@ TextureImporter:
|
||||
ignorePngGamma: 0
|
||||
applyGammaDecoding: 0
|
||||
swizzle: 50462976
|
||||
cookieLightType: 1
|
||||
cookieLightType: 0
|
||||
platformSettings:
|
||||
- serializedVersion: 4
|
||||
buildTarget: DefaultTexturePlatform
|
||||
@ -96,32 +96,6 @@ TextureImporter:
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: Android
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: iOS
|
||||
maxTextureSize: 2048
|
||||
resizeAlgorithm: 0
|
||||
textureFormat: -1
|
||||
textureCompression: 1
|
||||
compressionQuality: 50
|
||||
crunchedCompression: 0
|
||||
allowsAlphaSplitting: 0
|
||||
overridden: 0
|
||||
ignorePlatformSupport: 0
|
||||
androidETC2FallbackOverride: 0
|
||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||
- serializedVersion: 4
|
||||
buildTarget: WebGL
|
||||
maxTextureSize: 2048
|
||||
@ -139,96 +113,73 @@ TextureImporter:
|
||||
serializedVersion: 2
|
||||
sprites:
|
||||
- serializedVersion: 2
|
||||
name: Circle
|
||||
name: tamagoching_0
|
||||
rect:
|
||||
serializedVersion: 2
|
||||
x: 0
|
||||
y: 0
|
||||
width: 256
|
||||
height: 256
|
||||
x: 160
|
||||
y: 112
|
||||
width: 690
|
||||
height: 880
|
||||
alignment: 0
|
||||
pivot: {x: 0.5, y: 0.5}
|
||||
border: {x: 0, y: 0, z: 0, w: 0}
|
||||
customData:
|
||||
outline:
|
||||
- - {x: 33, y: 128}
|
||||
- {x: -33, y: 128}
|
||||
- {x: -95, y: 95}
|
||||
- {x: -128, y: 33}
|
||||
- {x: -128, y: -33}
|
||||
- {x: -95, y: -95}
|
||||
- {x: -33, y: -128}
|
||||
- {x: 33, y: -128}
|
||||
- {x: 95, y: -95}
|
||||
- {x: 128, y: -33}
|
||||
- {x: 128, y: 33}
|
||||
- {x: 95, y: 95}
|
||||
outline: []
|
||||
physicsShape:
|
||||
- - {x: 0, y: 128}
|
||||
- {x: -39, y: 121}
|
||||
- {x: -75, y: 103}
|
||||
- {x: -103, y: 75}
|
||||
- {x: -121, y: 39}
|
||||
- {x: -128, y: 0}
|
||||
- {x: -121, y: -39}
|
||||
- {x: -103, y: -75}
|
||||
- {x: -75, y: -103}
|
||||
- {x: -39, y: -121}
|
||||
- {x: 0, y: -128}
|
||||
- {x: 39, y: -121}
|
||||
- {x: 75, y: -103}
|
||||
- {x: 103, y: -75}
|
||||
- {x: 121, y: -39}
|
||||
- {x: 128, y: 0}
|
||||
- {x: 121, y: 39}
|
||||
- {x: 103, y: 75}
|
||||
- {x: 75, y: 103}
|
||||
- {x: 39, y: 121}
|
||||
- - {x: 331, y: -211}
|
||||
- {x: 344, y: -128}
|
||||
- {x: 342, y: -49}
|
||||
- {x: 335, y: 2}
|
||||
- {x: 322, y: 61}
|
||||
- {x: 309, y: 108}
|
||||
- {x: 286, y: 172}
|
||||
- {x: 257, y: 239}
|
||||
- {x: 222, y: 300}
|
||||
- {x: 188, y: 349}
|
||||
- {x: 131, y: 405}
|
||||
- {x: 79, y: 432}
|
||||
- {x: 30, y: 440}
|
||||
- {x: -11, y: 435}
|
||||
- {x: -46, y: 427}
|
||||
- {x: -92, y: 402}
|
||||
- {x: -117, y: 383}
|
||||
- {x: -145, y: 357}
|
||||
- {x: -173, y: 326}
|
||||
- {x: -197, y: 296}
|
||||
- {x: -230, y: 247}
|
||||
- {x: -263, y: 189}
|
||||
- {x: -286, y: 141}
|
||||
- {x: -313, y: 72}
|
||||
- {x: -330, y: 12}
|
||||
- {x: -339, y: -40}
|
||||
- {x: -343, y: -71}
|
||||
- {x: -344, y: -120}
|
||||
- {x: -338, y: -179}
|
||||
- {x: -320, y: -247}
|
||||
- {x: -296, y: -292}
|
||||
- {x: -262, y: -336}
|
||||
- {x: -216, y: -378}
|
||||
- {x: -137, y: -418}
|
||||
- {x: -61, y: -435}
|
||||
- {x: -6, y: -438}
|
||||
- {x: 42, y: -437}
|
||||
- {x: 129, y: -421}
|
||||
- {x: 194, y: -388}
|
||||
- {x: 254, y: -342}
|
||||
- {x: 296, y: -288}
|
||||
tessellationDetail: 0
|
||||
bones: []
|
||||
spriteID: 18d3544e99f608ed0800000000000000
|
||||
internalID: -2413806693520163455
|
||||
spriteID: e7f1e40cc9868bec0800000000000000
|
||||
internalID: -3550973283731103874
|
||||
vertices: []
|
||||
indices:
|
||||
edges: []
|
||||
weights: []
|
||||
outline:
|
||||
- - {x: 33, y: 128}
|
||||
- {x: -33, y: 128}
|
||||
- {x: -95, y: 95}
|
||||
- {x: -128, y: 33}
|
||||
- {x: -128, y: -33}
|
||||
- {x: -95, y: -95}
|
||||
- {x: -33, y: -128}
|
||||
- {x: 33, y: -128}
|
||||
- {x: 95, y: -95}
|
||||
- {x: 128, y: -33}
|
||||
- {x: 128, y: 33}
|
||||
- {x: 95, y: 95}
|
||||
outline: []
|
||||
customData:
|
||||
physicsShape:
|
||||
- - {x: 0, y: 128}
|
||||
- {x: -39, y: 121}
|
||||
- {x: -75, y: 103}
|
||||
- {x: -103, y: 75}
|
||||
- {x: -121, y: 39}
|
||||
- {x: -128, y: 0}
|
||||
- {x: -121, y: -39}
|
||||
- {x: -103, y: -75}
|
||||
- {x: -75, y: -103}
|
||||
- {x: -39, y: -121}
|
||||
- {x: 0, y: -128}
|
||||
- {x: 39, y: -121}
|
||||
- {x: 75, y: -103}
|
||||
- {x: 103, y: -75}
|
||||
- {x: 121, y: -39}
|
||||
- {x: 128, y: 0}
|
||||
- {x: 121, y: 39}
|
||||
- {x: 103, y: 75}
|
||||
- {x: 75, y: 103}
|
||||
- {x: 39, y: 121}
|
||||
physicsShape: []
|
||||
bones: []
|
||||
spriteID: 5e97eb03825dee720800000000000000
|
||||
spriteID: 2dd18a7bed78e344490857cbddbf4ecc
|
||||
internalID: 0
|
||||
vertices: []
|
||||
indices:
|
||||
@ -238,7 +189,7 @@ TextureImporter:
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable:
|
||||
Circle: -2413806693520163455
|
||||
tamagoching_0: -3550973283731103874
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
userData:
|
||||
@ -3,12 +3,12 @@
|
||||
--- !u!19 &1
|
||||
Physics2DSettings:
|
||||
m_ObjectHideFlags: 0
|
||||
serializedVersion: 5
|
||||
serializedVersion: 6
|
||||
m_Gravity: {x: 0, y: -9.81}
|
||||
m_DefaultMaterial: {fileID: 0}
|
||||
m_VelocityIterations: 8
|
||||
m_PositionIterations: 3
|
||||
m_VelocityThreshold: 1
|
||||
m_BounceThreshold: 1
|
||||
m_MaxLinearCorrection: 0.2
|
||||
m_MaxAngularCorrection: 8
|
||||
m_MaxTranslationSpeed: 100
|
||||
@ -19,6 +19,7 @@ Physics2DSettings:
|
||||
m_LinearSleepTolerance: 0.01
|
||||
m_AngularSleepTolerance: 2
|
||||
m_DefaultContactOffset: 0.01
|
||||
m_ContactThreshold: 0
|
||||
m_JobOptions:
|
||||
serializedVersion: 2
|
||||
useMultithreading: 0
|
||||
@ -39,18 +40,17 @@ Physics2DSettings:
|
||||
m_IslandSolverBodiesPerJob: 50
|
||||
m_IslandSolverContactsPerJob: 50
|
||||
m_SimulationMode: 0
|
||||
m_SimulationLayers:
|
||||
serializedVersion: 2
|
||||
m_Bits: 4294967295
|
||||
m_MaxSubStepCount: 4
|
||||
m_MinSubStepFPS: 30
|
||||
m_UseSubStepping: 0
|
||||
m_UseSubStepContacts: 0
|
||||
m_QueriesHitTriggers: 1
|
||||
m_QueriesStartInColliders: 1
|
||||
m_CallbacksOnDisable: 1
|
||||
m_ReuseCollisionCallbacks: 1
|
||||
m_AutoSyncTransforms: 0
|
||||
m_AlwaysShowColliders: 0
|
||||
m_ShowColliderSleep: 1
|
||||
m_ShowColliderContacts: 0
|
||||
m_ShowColliderAABB: 0
|
||||
m_ContactArrowScale: 0.2
|
||||
m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412}
|
||||
m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432}
|
||||
m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745}
|
||||
m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804}
|
||||
m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
m_GizmoOptions: 10
|
||||
m_LayerCollisionMatrix: f7fffffff7fffffff7ffffffc0fffffff7fffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
||||
|
||||
@ -141,8 +141,7 @@ PlayerSettings:
|
||||
visionOSBundleVersion: 1.0
|
||||
tvOSBundleVersion: 1.0
|
||||
bundleVersion: 1.0
|
||||
preloadedAssets:
|
||||
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
|
||||
preloadedAssets: []
|
||||
metroInputSource: 0
|
||||
wsaTransparentSwapchain: 0
|
||||
m_HolographicPauseOnTrackingLoss: 1
|
||||
|
||||
@ -11,7 +11,7 @@ TagManager:
|
||||
- Default
|
||||
- TransparentFX
|
||||
- Ignore Raycast
|
||||
-
|
||||
- No Collision
|
||||
- Water
|
||||
- UI
|
||||
-
|
||||
@ -47,9 +47,15 @@ TagManager:
|
||||
- name: Background details
|
||||
uniqueID: 885684001
|
||||
locked: 0
|
||||
- name: Level Details
|
||||
uniqueID: 1712314021
|
||||
locked: 0
|
||||
- name: Default
|
||||
uniqueID: 0
|
||||
locked: 0
|
||||
- name: Equipment
|
||||
uniqueID: 824449243
|
||||
locked: 0
|
||||
- name: Foreground
|
||||
uniqueID: 981438795
|
||||
locked: 0
|
||||
|
||||