Unity记录

匿名 (未验证) 提交于 2019-12-02 23:42:01

Creative Commons

//球形检测。得到碰撞范围内的碰撞物体

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().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).normalizedMoveSpeedTime.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();

//查找多个同等级及一下子节点
GameObject obj = Tranfrom.FindObjectOfTypeAll();

//查找子节点组件
getCompoentInChildren();

//调用父物体身上的脚本
getCompoentInParent();

//判断当前动作
if (animator.GetCurrentAnimatorStateInfo(0).IsName(“Idle”))
{
//如果是站立状态 不显示攻击圈
isAttacking = false;
}
else {
isAttacking = true;
}

文章来源: https://blog.csdn.net/zhengjuqiang/article/details/91354700
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!