Vector3 (x,y,z)三维向量
float x = vector3.magnitude; 计算向量长度
Vector3 aaa = vector3.normalized; 将向量标准化
Vector3 V1 = Vector3.zero;
Vector3 V2 = Vector3.up;
Vector3 V3 = Vector3.forward;
Vector3 V4 = Vector3.right;
Debug.Log("零向量:" + V1);
Debug.Log("Y=1向量:" + V2);
Debug.Log("Z=1向量:" + V3);
Debug.Log("X=1的向量:" + V4);
Vector3 V1 = new Vector3(1,1,1);
Vector3 V2 = new Vector3(2,2,2);
Vector3 V3 = V1 + V2; 向量求和
Vector3 V4 = V1 - V2; 向量减法
Vector3 V5 = V1 *2; //向量的标量乘
float C=Vector3.Dot(V1, V2); //点乘
Vector3 V6 = Vector3.Cross(V1, V2); //叉乘
向量不能设置为null
GameObject targe = GameObject.Find("旋转(BLUE)");
Vector3 V1 = this.transform.position;
Vector3 V2 = targe.transform.position;
Vector3 V3 = V1 - V2;
Debug.Log("两物品之间的距离为:" + V3.magnitude); 两物体测距 使用向量减法
Debug.Log("两物品之间的距离为:" + Vector3.Distance(V1,V2)); 或者使用Distance函数
Vector3.Distance(V1, V2) = (V1 - V2).magnitude;
public Vector3 revolve; 通过三维向量实现对速度的控制
public Vector3 speed;
预制体Prefab 是预先制作好的物品
将做好的物品从Hierarchy中托入文件中,自动生成prefab文件
将prefab文件Exprot Package打包 选择需要的文件 实现能将资源包传送给别人
prefab文件可以Select实现找到预制体放置位置 可以通过右键/Prafab/Unpack对预制体连接解除
双击prefab文件可以直接编辑预制体资源
可以调整预制体编辑时的其他物品的观察模式
修改后物体可以通过来修改prefab中的内容或者撤销
使用Object函数Object.Instantiate( Object original, Transfor parent )进行生成新结点
例如 GameObject node = Object.Instantiate(bulletPrefab, bulletFolder);
当Prefab Instantiate 建立完成后,去要对新结点进行初始化
1.parent 父结点的声明 2.position 新结点生成的地址
3.elverAngles 旋转的声明 4.生成物的自带属性的设置
例如 GameObject node = Object.Instantiate(bulletPrefab, bulletFolder);
node.transform.position = position.position; //读取位置
//node.transform.localEulerAngles = angles.eulerAngles; //读取转角
node.transform.rotation = angles.rotation; //也可以用rotation进行赋值
Zidan aaa = node.GetComponent<Zidan>(); //定义子弹的脚本
aaa.speed = new Vector3(0f, 0f, 10f);
使用 Object.Distroy(this.gameObject) 将物体自毁
例如① float lifetime = 1; //通过存活时间来判断销毁
if (speed.z > 0)
{
lifetime = distense/speed.z; //通过路程/速度计算销毁时间
}
Invoke("SelfDisture", lifetime );
②V1 = this.transform.position; //先定位初始点
InvokeRepeating("Distanse", 0f, 0.1f); //定时判断距离
void Distanse() //通过起始点终止点距离来销毁
{
V2 = this.transform.position;
if (Vector3.Distance(V2, V1) > distense) //再通过两点间距离
Destroy(this.gameObject);
}