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;

    }
}

}

发布了49 篇原创文章 · 获赞 8 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_23158477/article/details/95351509
AI