//向量a点乘AB的结果 float dotResult= Vector3.Dot(this.transform.forward, target.position - this.transform.position); if (dotResult>0) { print("它在我前方");} else { print("它在我后方");}通过点乘推导公式算出夹角 1.用单位向量算出点乘结果 2.用反三角函数得出角度 // //1.点乘算出方向向量 // float dotRes = Vector3.Dot(this.transform.forward, (B.transform.position - this.transform.position).normalized); // //2.通过反余弦函数算出夹角 // if (Mathf.Acos(dotRes) * Mathf.Rad2Deg<=22.5f) // { // pr
调试画线 参1 起点位置 参2 终点位置 参3 颜色 Debug.DrawLine(this.transform.position,this.transform.position+this.transform.forward,Color.red); 参1 起点 参2 朝向,方向 参3 颜色 Debug.DrawRay(this.transform.position+this.transform.right*2,this.transform.forward,Color.yellow); Debug.DrawRay(this.transform.position, target.position-this.transform.position, Color.black);
Vector3提供的静态方法/属性//零点Vector3.zero//(1,0,0) x轴正方向Vector3.right//(-1,0,0)Vector3.left//(0,0,1) z轴正方向Vector3.forward//(0,0,-1)Vector3.back//(0,1,0) y轴正方向Vector3.up//(0,-1,0)Vector3.down以上可以简单理解为方向向量//计算两点之间的距离Vector3.Distance(点1,点2)TransForm位置 //相对世界原点坐标系 两种写法没有区别//如果有父子关系可能和面板显示不一致this.transform.positionthis.gameObject.transform.position //相对父对象的位置this.transform.localPosition修改坐标值transform的赋值不能单独改某一个坐标,只能整体改变,例如:this.transform.position = new Vector3(x,y,z); this.transform.position = Vector
位置+位置 没有意义向量+向量=向量向量相加,收尾相连位置+向量=位置 平移位置位置-向量=位置 平移位置位置-位置=向量两点决定一向量,终点-起点向量-向量=向量向量乘除向量A标量a=(xa,ya,za)向量*or/整数,方向不变,放大缩小模长向量*or/负数,方向相反,放大缩小模长向量*0 得到零向量总结向量加法 位置平移向量减法 位置平移向量乘除法 模长缩小或放大
//向量 //三维 vector3 //1.位置 代表一个点 print(this.transform.position); //2.方向 代表一个方向 print(this.transform.forward); print(this.transform.up); //两点决定一向量 Vector3 A = new Vector3(1, 2, 3); Vector3 B = new Vector3(5, 1, 5); //求向量 Vector3 AB = B - A; Vector3 BA = A - B; //零向量 (0,0,0) print(Vector3.zero); //负向量 print(Vector3.forward); print(-Vector3.forward); //向量的模长 //就是向量的长度,由两个点算出,向量的模长就是两个点的距离 //magnitude print(AB
一棵小松林
Gamer游戏开发者