当前位置: 首页 > news >正文

网站开发小图标c c也能干大事网站开发

网站开发小图标,c c也能干大事网站开发,庐江网站广告怎么做,网站简介 更改Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Enemy.cs using System.Collections; using System.Collections.Generic; …
 Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考
此代码仅为较上一P有所改变的代码

【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili


Enemy.cs
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;public class Enemy : Entity
{[SerializeField] protected LayerMask whatIsPlayer;[Header("Move Info")]public float moveSpeed;public float idleTime;public float battleTime;//多久能从battle状态中退出来[Header("Attack Info")]public float attackDistance;public float attackCooldown;//攻击冷却[HideInInspector]public float lastTimeAttacked;//最后一次攻击的时间#region 类public EnemyStateMachine stateMachine;#endregionprotected override void Awake(){base.Awake();stateMachine = new EnemyStateMachine();}protected override void Start(){base.Start();}protected override void Update(){base.Update();stateMachine.currentState.Update();//Debug.Log(IsPlayerDetected().collider.gameObject.name + "I see");//这串代码会报错,可能使版本的物体,因为在没有找到Player的时候物体是空的,NULL,你想让他在控制台上显示就报错了}public virtual void AnimationFinishTrigger() => stateMachine.currentState.AnimationFinishTrigger();//动画完成时调用的函数,与Player相同public virtual RaycastHit2D IsPlayerDetected() => Physics2D.Raycast(wallCheck.position, Vector2.right * facingDir, 7, whatIsPlayer);//用于从射线投射获取信息的结构。//该函数的返回值可以变,可以只返回bool,也可以是碰到的结构protected override void OnDrawGizmos(){base.OnDrawGizmos();Gizmos.color = Color.yellow;Gizmos.DrawLine(transform.position, new Vector3(transform.position.x + attackDistance * facingDir, transform.position.y));}}
SkeletonGroundState.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SkeletonGroundState : EnemyState
{protected Enemy_Skeleton enemy;protected Transform player;public SkeletonGroundState(Enemy _enemyBase, EnemyStateMachine _stateMachine, string _animBoolName,Enemy_Skeleton _enemy) : base(_enemyBase, _stateMachine, _animBoolName){enemy = _enemy;}public override void Enter(){base.Enter();player = GameObject.Find("Player").transform;}public override void Exit(){base.Exit();}public override void Update(){base.Update();if(enemy.IsPlayerDetected()||Vector2.Distance(enemy.transform.position,player.transform.position)<2){stateMachine.ChangeState(enemy.battleState);}}
}
SkeletonBattleState.cs
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
//从ground进来的
public class SkeletonBattleState : EnemyState
{private Transform player;//用于给Player定位,好判断怎么跟上他private Enemy_Skeleton enemy;private int moveDir;public SkeletonBattleState(Enemy _enemyBase, EnemyStateMachine _stateMachine, string _animBoolName,Enemy_Skeleton _enemy ) : base(_enemyBase, _stateMachine, _animBoolName){enemy = _enemy;}public override void Enter(){base.Enter();player = GameObject.Find("Player").transform;//全局找Player位置}public override void Exit(){base.Exit();}public override void Update(){base.Update();//退出此状态的方式if(enemy.IsPlayerDetected()){stateTimer = enemy.battleTime;if (enemy.IsPlayerDetected().distance < enemy.attackDistance)//当距离小于攻击距离,变为攻击状态{if (CanAttack())stateMachine.ChangeState(enemy.attackState);}}else//当没有看见player后,才会根据没有看到的时间来使其退出battle状态{if(stateTimer < 0||Vector2.Distance(player.transform.position,enemy.transform.position)>7)//根据距离来判断是否结束battle状态{stateMachine.ChangeState(enemy.idleState);}}//下面为移动方向设置if(player.position.x > enemy.transform.position.x)//在右,向右移动{moveDir = 1;}else if(player.position.x<enemy.transform.position.x)//在左,向左移动{moveDir = -1;}enemy.SetVelocity(enemy.moveSpeed * moveDir, rb.velocity.y);}private bool CanAttack(){if(Time.time > enemy.lastTimeAttacked + enemy.attackCooldown){enemy.lastTimeAttacked = Time.time;return true;}Debug.Log("Attack is on cooldown");return false;}
}

http://www.yayakq.cn/news/659080/

相关文章:

  • 小店网站怎么做宣传册免费模板
  • 网站建设站长之家wordpress google font
  • 找客户资源的网站seo快排
  • 红塔网站制作阿里云备案 网站服务内容
  • 网站优化seo是什么意思在线视频2018免费视频
  • 上海做网站企业佛山免费建站怎样
  • 济南网站建设系统介绍服务出名的建站网站
  • 网站开发找哪个注册公司上什么网站
  • 网站导航广告怎么做做非法集资资讯的网站
  • 淘宝网可以做网站吗信誉好的合肥网站推广
  • app定制网站开发设计风格网站
  • 网络升级访问紧急页面通知seo技术交流论坛
  • 滨海做网站需要多少钱余江县建设局网站
  • 爱站网自媒体数据应用软件免费下载
  • 怎么看网站域名wordpress角色模板
  • 免费做自己的网站有钱赚吗打字建站宝
  • 做网站是怎样赚钱的二级域名网站
  • 天津科技网站甘肃广川工程建设有限公司网站
  • 什么类型的网站容易做佛山模板网站建站
  • 广州企业建站系统模板怎么自己做网站游戏
  • 网站建设公司名称设计一个网站要多少钱
  • h5网站制作介绍宣传片拍摄脚本
  • 邦利博客网站怎么做的南海区住房城乡建设和水务局网站
  • 专业的团队网站建设什么是软文营销
  • 佛山网站建设推广厂商排名做网站app需要多少钱
  • 已有网站做移动网站电子商务网站建设 期末考试试卷以及答案
  • 织梦 图片网站大连百度推广优化
  • 公建设计网站python编程软件推荐
  • 教育网站制作设计营销策略论文
  • 可信网站认证是否必须做nas里安装wordpress