利用Vuforia开发一个AR卡牌对战(二):主要代码实现

Vuforia开发AR卡牌对战游戏(二):实现

接着上一篇,我们再继续实现我们的卡牌对战游戏,上一次忘记了将血条的样式改为水平的Filed样式

 

这里我们需要几个TagKnightAIRemoteAIKnightWeapenRemoteBullet,分别给到近战,远程,近战的武器,远程的子弹上。

由于我们有两个角色,一个远程一个近战,所以我们要写两个脚本。

首先写近战的脚本:KnightCtrl,先说一下大致思路:近战角色有血量,要获得自身血条的引用,自己在被子弹击中时会减血,还需要判断敌人是否死亡,敌人死亡需要嘲讽,自己是否死亡;需要每帧去获得远程敌人的引用(因为不知道啥时候会识别到敌人识别图,所以不能在Start中获得),到了一定的距离可以向着敌人移动,到了攻击范围就去攻击敌人。下面是主要代码和注释:

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

public class KnightCtrl : MonoBehaviour
{
    public float m_Life = 100f; //血量
    public float sightRange = 20f;  //视野范围,到了视野范围就向着对方移动
    public float attackRange = 2f;  //攻击范围
    public Image bloodImage; //血条
    public static float weaponDamage = 20f;  //自己的武器伤害值

    private Animator m_Animator;//动画机
    private bool enemyHasDie;   //敌人是否死亡

	// Use this for initialization
	void Start ()
    {
        m_Animator = this.GetComponent<Animator>();
        //待机
        m_Animator.SetBool("Run", false);
        m_Animator.SetBool("NextAttack", false);
        enemyHasDie = false;  
    }
	
	// Update is called once per frame
	void Update ()
    {
        GameObject remoteEnemy = GameObject.FindGameObjectWithTag("RemoteAI");

        if (remoteEnemy != null && !enemyHasDie && m_Life > 0f) //识别图加载出来后而且敌人没有死而且自己还活着
        {
            float dis = Vector3.Distance(this.transform.position, remoteEnemy.transform.p
  • 2
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值