https://youtu.be/hE162PlVg1k?si=eEoxj_bQzjsScoE7 у него на 6:16 он смог напписать StopMovement, а я не могу скрипт ниже using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events ; using UnityEngine.InputSystem; using Unity.VisualScripting;
public class ControlPlayer : MonoBehaviour { public UnityEvent Landed; public UnityEvent Dead;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events ;
using UnityEngine.InputSystem;
using Unity.VisualScripting;
public class ControlPlayer : MonoBehaviour
{
public UnityEvent Landed;
public UnityEvent Dead;
[SerializeField] private float _jumpForce;
[SerializeField] private ContactFilter2D _platform;
private Rigidbody2D _rigidbody;
private bool _isOnPlatform => _rigidbody.IsTouching(_platform);
private void Awake()
{
_rigidbody = GetComponent<Rigidbody2D>();
}
public void Jump()
{
if (_isOnPlatform == true)
_rigidbody.AddForce(Vector2.up * _jumpForce, ForceMode2D.Impulse);
}
private void OnCollisionEnter2D(Collision2D collision)
{
GameObject collisionObject = collision.gameObject;
if (collisionObject.transform.parent != null)
{
if (collisionObject.transform.parent.TryGetComponent(out PlatformEffector2D platform))
platform.StopMovement();
}
if (collisionObject.CompareTag("PlatformWall"))
Dead?.Invoke();
else if (collisionObject.CompareTag("Platform"))
{
collisionObject.tag = "Untagged";
Landed?.Invoke();