Unity3D --//2d游戏 怪物左右移动,碰撞方向判断

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyContro : MonoBehaviour {

    // Use this for initialization
    public float speed = 1;
    int moveDir = 1;
    Animator myAnimator;
	void Start () {
        myAnimator = GetComponent<Animator>();

    }
	
	// Update is called once per frame
	void Update () {
        transform.Translate(Vector2.right * speed *moveDir* Time.deltaTime);
	}

    private void OnCollisionEnter2D(Collision2D collision)
    {
      
        Vector2 co_dir = collision.contacts[0].normal;

        float angle_right = Vector2.Angle(Vector2.right, co_dir);
        float angle_left = Vector2.Angle(Vector2.left, co_dir);
        float angle_down = Vector2.Angle(Vector2.down, co_dir);
        if(angle_right < 45)
        {
            moveDir = 1;
        }

        if (angle_left < 45)
        {
            moveDir = -1;
        }

        if (angle_down <45)
        {
            myAnimator.Play("enemy_die");
            Destroy(gameObject, 0.1f);
        }
    }
}

猜你喜欢

转载自blog.csdn.net/u011266694/article/details/82846641
今日推荐