/// <summary> /// 当人物手里没东西,或者有材料的时候与火车交互 /// </summary> private void Train(string hitname, RaycastHit hitObject) { if (hitname == "Tank") { // 获取碰撞到的火车 Tank tank = hitObject.collider.gameObject.GetComponent <Tank>(); Resmaterial[] materials = transform.GetComponentsInChildren <Resmaterial>(); // 将人物手中资源块放入车厢 for (int i = materials.Length; i > 0; i--) { // 逆序,先把手中材料的子物体放进车厢 tank.StoreMat(materials[i - 1]); } tm.UpdateMatrial(); } else if (hitname == "Forge") { // 获取所碰撞到的车厢 Forge forge = hitObject.collider.gameObject.GetComponent <Forge>(); // 人物hero取出铁轨 //forge.FetchRail(transform.gameObject); bool takeRail = forge.FetchRail(tm.rightHand); if (takeRail)// 如果捡起了铁轨,修改右手的状态,改为Rail { tm.handState = ToolManager.HANDSTATE.RAIL; } } }