//球形检测。得到碰撞范围内的碰撞物体
Collider [] enemys = Physics.OverlapCapsule(bengin,end,attackRange * 5, needJude);
//获取layer设置的内容
LayerMask.GetMask(new string[] { TagLayerType.hero.ToString(), TagLayerType.crytal.ToString(), TagLayerType.soldier.ToString(), TagLayerType.tower.ToString() });
//用来访问子对象上的脚本
AttackRangeCircle.GetComponentInChildren<SpriteRenderer>().color
//设置方向的最大值 回归1
desireForward.Normalize();
//获取坐标的平方根
walkSpeed = desireForward.magnitude;
//指向移动方向的正前方
transform.rotation = Quaternion.Lerp(transform.rotation,Quaternion.LookRotation(desireForward),RotaionSpeed*Time.fixedDeltaTime);
/**
Time.fixedDeltaTime 可读可写
Time.dateTime; 只可读
*/
//设置朝向目标点
transform.LookAt(transform);
//设置移动坐标 修改自身的坐标系 根据初始目标点移动
transform.Translate((CurrentTarget.transform.position - transform.position).normalized*MoveSpeed*Time.deltaTime);
//修改物体在世界坐标系的内容 不会根据角度变化
transform.Position += new Vector3(0,0,1);
//刚体移动 (更加真实 有摩擦力的效果)
Rigidbody rigid = null;
rigid.velocity = new Vector3(5f,0,0);
rigid.MovePosition(transform.position + transform.forward * Time.daltaTime);
if(rigid != null)
{
//如果有刚体 使用刚体移动
}
else
{
//使用坐标移动
}
//导航移动
public NavMeshAgent Agent = null;
Agent.Move(desireForward * Time.deltaTime * HeroSpeed);
//利用gameobject对象获取身上的脚本方式 不能查找隐藏的掉的内容
//GameObject.Find("name");
//查找节点中多有组件
//GameObject.FindChild("name");
//查找第一个活跃的对象
GameObject obj = Tranfrom.FindObjectOfType<T>();
//查找多个同等级及一下子节点
GameObject obj = Tranfrom.FindObjectOfTypeAll<T>();
//查找子节点组件
getCompoentInChildren<T>();
//调用父物体身上的脚本
getCompoentInParent<T>();
//判断当前动作
if (animator.GetCurrentAnimatorStateInfo(0).IsName("Idle"))
{
//如果是站立状态 不显示攻击圈
isAttacking = false;
}
else {
isAttacking = true;
}