using System.Collections; using UnityEngine; public class MainToFarm : MonoBehaviourSingletonTemplate { GameObject go_farmer, go_obj; int curFarmerID; private void Start() { Set_MyFarmer(); Set_Obj(); } public void Set_MyFarmer() { Make_Farmer(ServerInfo.Ins.m_ServerData.Get_EqiupmentEquip(eItem.Farmer), false); } public void Set_Stone(float delayTime = 10f) { StartCoroutine(Co_SetStone(delayTime)); } IEnumerator Co_SetStone(float delayTime) { yield return new WaitForSeconds(delayTime); Set_Obj(); } public void Set_Obj() { if (DSUtil.CheckNull(go_obj)) AddrResourceMgr.Ins.LoadObject("Assets/Res_Addr/Obj/FarmObj.prefab", handle => { var obj = DSUtil.Get_Clone(handle.Result); ActorInfo.Ins.Add_Actor(obj.GetComponent(), eRole.OBJ, 0, "FarmObj"); Set_Obj(obj); }); else Set_Obj(go_obj); } void Set_Obj(GameObject obj) { go_obj = obj; LoadMapMgr.Ins.Get_tfObj(MyValue.MyChoiceMapData, 0, tf => { go_obj.transform.parent = tf; var actor = go_obj.GetComponent(); actor.Set(ServerInfo.Ins.m_ServerData.Get_FarmMaxSlot(), tf.position); }); } public void Make_Farmer(int id, bool warpPC) { if (id > 0 && curFarmerID != id) { curFarmerID = id; Destroy(go_farmer); var data = table_farmerlist.Ins.Get_Data_orNull(curFarmerID); AddrResourceMgr.Ins.LoadObject(data.s_Prefab, handle => { LoadMapMgr.Ins.Get_tfFarmer(MyValue.MyChoiceMapData, tf => { go_farmer = DSUtil.Get_Clone(handle.Result, tf); }); }); Resources.UnloadUnusedAssets(); } if (warpPC) WarpToFarmFirstPosion(); } public void WarpToFarmFirstPosion() { MyValue.MyPC.Set_AutoBraking(false); MyValue.MyPC.Play_Idle(); MyValue.MyPC.Set_Warp(new Vector3(110f, 0f, 40.5f)); MyValue.m_RealCamera.Set_Rot(225f); } }