Unity Enemy behaviour

27 篇文章 0 订阅
3 篇文章 0 订阅
using UnityEngine;
using System.Collections;


public class enemyBehaviour : MonoBehaviour
{
    //enemy that moves to player when close enough


    public float speed = 6f;
    public Transform player;
    public float enemySight = 1000f;
public AudioClip[] clips;
public AudioSource source;
int rand;
static private int hohoindex = 8;
static private int deathindex = 11;


    // Use this for initialization
    void Start()
    {
rand = Random.Range (0, hohoindex);
source.clip = clips [rand];
    }


    // Update is called once per frame
    void FixedUpdate()
    {
if (!puller_control.isDead) {
player = GameObject.Find ("Player").transform;
//move and face towards player
var heading = player.position - transform.position;


var distance = heading.magnitude;
var direction = heading / distance;


if (heading.sqrMagnitude < enemySight * enemySight) {
float angle = Mathf.Atan2 (heading.y, heading.x) * Mathf.Rad2Deg;
Quaternion q = Quaternion.AngleAxis (angle, Vector3.forward);


//transform.rotation = Quaternion.Slerp(transform.rotation, q, Time.deltaTime * speed);
transform.position = Vector2.MoveTowards (rigidbody2D.position, new Vector2 (player.transform.position.x, player.transform.position.y), Time.deltaTime * speed);
}
}
StartCoroutine("HoHo");
}


//die on collision with sled
void OnCollisionEnter2D(Collision2D collision){
if(collision.gameObject.name == "Sled"){


if(collision.relativeVelocity.magnitude>3)
{
source.Stop();
source.clip = clips[Random.Range(hohoindex, deathindex)];
AudioSource.PlayClipAtPoint(source.clip, this.transform.position);
Destroy(this.gameObject);
}


}


if(collision.gameObject.name == "Player"){
puller_control.isDead = true;
Destroy(player.gameObject);
Application.LoadLevel("GameOver");
}
}


//Coroutine to call the enemy's hohos.
IEnumerator HoHo() {
if (!source.isPlaying) {
rand = Random.Range (0, hohoindex);
source.clip = clips [rand];
source.Play();
yield return new WaitForSeconds(Random.Range(5, 10));
}
}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值