AI例子

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

public class Ai : MonoBehaviour {

public GameObject player;
float Hp = 20;
Rigidbody rigidbody;

Context context;
// Use this for initialization
void Start () {
    context = new Context(this);
    rigidbody = GetComponent<Rigidbody>();
}

// Update is called once per frame
void Update () {
    
    context.DoAction(GetData());
}

/// <summary>
/// 獲取各種條件
/// </summary>
/// <returns></returns>
Data GetData()
{
    Data data = new Data();
    data.DistanceAiToPlayer = Vector3.Distance(transform.position, player.transform.position);
    data.Hp = Hp;
    return data;
}

public void MoveToPlayer()
{
    rigidbody.AddForce((player.transform.position - transform.position).normalized);
}

public void StopMove()
{
    rigidbody.AddForce(-rigidbody.velocity);
}

public void BeAttack()
{
    Hp -= 0.01f;
}

public void FarAwayPlayer()
{
    rigidbody.AddForce(-(player.transform.position - transform.position).normalized*2);
}

public void RecoveryHp()
{
    if(Hp < 20)
    {
        Hp += 0.1f;

    }
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章