/// <summary>
 /// 复制坦克部件管理器
 /// </summary>
 /// <param name="copySrc">复制源</param>
 public void CopyFrom(TankAssembleManager copySrc)
 {
     head        = copySrc.head;
     body        = copySrc.body;
     leftWheel   = copySrc.leftWheel;
     cap         = copySrc.cap;
     face        = copySrc.face;
     bodyForward = copySrc.bodyForward;
     bodyBack    = copySrc.bodyBack;
 }
Exemple #2
0
 public override void SetDefaultValue()
 {
     base.SetDefaultValue();
     body = target as TankModuleBody;
     body.leftWheelTop  = GameMathf.Round(moduleBounds.center + new Vector3(-moduleBounds.extents.x, -moduleBounds.extents.y, 0));
     body.rightWheelTop = GameMathf.Round(moduleBounds.center + new Vector3(moduleBounds.extents.x, -moduleBounds.extents.y, 0));
     body.raycastPos    = body.anchors.forward;
     body.forwardUp     = new Vector3(body.anchors.forward.x, body.anchors.up.y, body.anchors.forward.z);
     body.backUp        = new Vector3(body.anchors.back.x, body.anchors.up.y, body.anchors.back.z);
 }
 public void Clear()
 {
     head        = null;
     body        = null;
     leftWheel   = null;
     cap         = null;
     face        = null;
     bodyForward = null;
     bodyBack    = null;
 }
    public override Vector3 GetTargetAnchor(TankModule module)
    {
        TankModuleBody body = module as TankModuleBody;

        if (body == null)
        {
            Debug.LogError("TankModuleBodyForward.GetTargetAnchor() Parameter Should Be 'TankModuleBody'.");
            return(Vector3.zero);
        }
        switch (targetPos)
        {
        case TargetPos.BodyForwardUp:
            return(body.forwardUp);

        case TargetPos.BodyForward:
            return(body.anchors.forward);
        }
        return(Vector3.zero);
    }
Exemple #5
0
 /// <summary>
 /// 连接右轮胎到身体
 /// </summary>
 /// <param name="rightWheel">右轮胎</param>
 /// <param name="rightObj">右轮胎对象</param>
 /// <param name="body">身体</param>
 /// <param name="bodyObj">身体对象</param>
 static public void ConnectRightWheelToBody(TankModuleWheel rightWheel, GameObject rightObj, TankModuleBody body, GameObject bodyObj)
 {
     if (rightWheel.wheelType == TankModuleWheel.WheelType.Left)
     {
         rightObj.transform.position = bodyObj.transform.position + body.rightWheelTop - new Vector3(-rightWheel.anchors.up.x, rightWheel.anchors.up.y, rightWheel.anchors.up.z);
     }
     else
     {
         rightObj.transform.position = bodyObj.transform.position + body.rightWheelTop - rightWheel.anchors.up;
     }
 }
Exemple #6
0
 /// <summary>
 /// 连接左轮胎到身体
 /// </summary>
 /// <param name="leftWheel">左轮胎</param>
 /// <param name="leftWheelObj">左轮胎对象</param>
 /// <param name="body">身体</param>
 /// <param name="bodyObj">身体对象</param>
 static public void ConnectLeftWheelToBody(TankModuleWheel leftWheel, GameObject leftWheelObj, TankModuleBody body, GameObject bodyObj)
 {
     leftWheelObj.transform.position = bodyObj.transform.position + body.leftWheelTop - leftWheel.anchors.up;
 }
Exemple #7
0
 /// <summary>
 /// 连接头到身体
 /// </summary>
 /// <param name="head">头部件</param>
 /// <param name="headObj">头部件对象</param>
 /// <param name="body">身体部件</param>
 /// <param name="bodyObj">身体部件对象</param>
 static public void ConnectHeadToBody(TankModuleHead head, GameObject headObj, TankModuleBody body, GameObject bodyObj)
 {
     headObj.transform.position = bodyObj.transform.position + body.anchors.up - head.anchors.down;
 }