77 lines
2.3 KiB
C#
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);
|
|
});
|
|
}
|
|
} |