Project_WL/Assets/Script/Main/MainToFarm.cs

77 lines
2.3 KiB
C#

using System.Collections;
using UnityEngine;
public class MainToFarm : MonoBehaviourSingletonTemplate<MainToFarm>
{
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<GameObject>("Assets/Res_Addr/Obj/FarmObj.prefab", handle =>
{
var obj = DSUtil.Get_Clone(handle.Result);
ActorInfo.Ins.Add_Actor(obj.GetComponent<Actor>(), 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<StoneActor>();
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<GameObject>(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();
LoadMapMgr.Ins.Get_PortalPos(MyValue.MyChoiceMapData, portalpos =>
{
MyValue.MyPC.Set_Warp(portalpos);
MyValue.m_RealCamera.Set_Target(transform, LoadMapMgr.Ins.Get_MapZoneData(MyValue.MyChoiceMapData).CamRot_Portal);
});
}
}