コード例 #1
0
//	protected virtual void InitActor()
//	{
//		int fleetID = 1000;
//		FleetL fleet = Globals.Instance.MPlayerManager.CreateFleet(fleetID);
//
//		PlayerData actorData = Globals.Instance.MGameDataManager.MActorData;
//		GirlData wsData = actorData.GetActorFakeWarshipData();
//
//		GirlData fakeData = new GirlData();
//		fakeData.WarShipID = 1000000;
//
//		// Huoqu dangqian zhenxing zhong zuixiao suoyin weizhi chuan de logicID
//		if (null != wsData)
//			fakeData.BasicData.LogicID = wsData.BasicData.LogicID;
//		else
//			fakeData.BasicData.LogicID = 1217001000;
//
//		fakeData.BasicData.IsNpc = false;
//		fakeData.BasicData.FillDataFromConfig();
//
//		// Use fleet name to display in copy
//		fakeData.BasicData.Name = actorData.BasicData.FleetName;
//
//		fleet.CreateWarship(fakeData, delegate(WarshipL ws)
//		{
//			ws.U3DGameObject.name = fakeData.BasicData.Name;
//			ws.GameObjectTag = TagMaskDefine.GFAN_ACTOR;
//			ws.MoveSpeed = 100.0f;
//			ws.IsInCopy = true;
//
//			// Move to birth position
//			ws.ForceMoveTo(MCurrentCopyData.MCopyBasicData.ActorBirthPosition);
//			ws.Show3DName(true);
//
//			//add rigid body
//			Rigidbody rigidbody = ws.U3DGameObject.AddComponent<Rigidbody>() as Rigidbody;
//			if(rigidbody)
//			{
//				rigidbody.useGravity = false;
//				rigidbody.isKinematic = true;
//			}
//
//			BoxCollider coll = ws.U3DGameObject.AddComponent<BoxCollider>() as BoxCollider;
//			if(coll)
//			{
//				coll.isTrigger = true;
//				coll.center = new Vector3(0,0,0);
//				coll.size = new Vector3(100,20,20);
//			}
//		});
//
//		// BattleTrigger trigger = ws.U3DGameObject.AddComponent<BattleTrigger>() as BattleTrigger;
//		// trigger.BoxSize = new Vector3(100,20,20);
//		// trigger.TriggerEnterEvents += this.OnRequestBattle;
//
//		_mActorFleet = fleet;
//	}
//
//	void ReplaceActorModel()
//	{
//		if (null == _mActorFleet)
//			return;
//
//		PlayerData actorData = Globals.Instance.MGameDataManager.MActorData;
//		GirlData t_wsData = actorData.GetActorFakeWarshipData();
//		if (null == t_wsData)
//			return;
//
//		t_wsData.BasicData.Name = actorData.BasicData.FleetName;
//
//		WarshipL tWarship = _mActorFleet._mWarshipList[0];
//		Vector3 destPos = tWarship.U3DGameObject.transform.position;
//		Quaternion destQuat = tWarship.U3DGameObject.transform.rotation;
//
//		tWarship.ReplaceMode(t_wsData.BasicData.ModelName, delegate(WarshipL ws)
//		{
//			ws.U3DGameObject.name = t_wsData.BasicData.Name;
//			ws.GameObjectTag = TagMaskDefine.GFAN_ACTOR;
//			ws.MoveSpeed = 100.0f;
//			ws.IsInCopy = true;
//
//			ws.U3DGameObject.transform.position = destPos;
//			ws.U3DGameObject.transform.rotation = destQuat;
//
//			ws.Show3DName(true);
//
//			//add rigid body
//			Rigidbody rigidbody = ws.U3DGameObject.AddComponent<Rigidbody>() as Rigidbody;
//			if(rigidbody)
//			{
//				rigidbody.useGravity = false;
//				rigidbody.isKinematic = true;
//			}
//
//			BoxCollider coll = ws.U3DGameObject.AddComponent<BoxCollider>() as BoxCollider;
//			if(coll)
//			{
//				coll.isTrigger = true;
//				coll.center = new Vector3(0,0,0);
//				coll.size = new Vector3(100,20,20);
//			}
//		});
//	}

    protected virtual void InitMonsters()
    {
        foreach (CopyMonsterData.MonsterData monsterData in MCurrentCopyData.MCopyMonsterData.MMonsterDataList)
        {
            // Create Fleet
            MonsterFleet monsterFleet = Globals.Instance.MPlayerManager.CreateMonsterFleet(monsterData.FleetID);

            // Create Warship
            monsterFleet.CreateMonsterWarship(monsterData, delegate(WarshipL ws)
            {
                MonsterWarship monster = ws as MonsterWarship;
                monster.ForceMoveTo(monsterData.MonsterPosition);
                monster.U3DGameObject.name = monsterData.MonsterName;
                // monster._thisGameObject.layer = LayerMaskDefine.IGNORE_RAYCAST;

                // Register Active Event
                monster.AddTriggerCallback(this.OnRequestBattle);
                monster.StartPathPatrolAI();

                // Add into MonsterFleetList
                _mMonsterFleetList.Add(monsterFleet);

                // Instantiate 3d arrow
                GameObject prefab = Globals.Instance.M3DItemManager.MonsterArrowTP;
                GameObject go     = Globals.Instance.M3DItemManager.CreateEZ3DItem(prefab, Vector3.zero);
                go.name           = "MonsterGuideArrow";
                _mGuideArrowList.Add(monsterFleet, go);

                if (monster.VisibleTrigger)
                {
                    monster.VisibleTrigger.ControlTarget = go;
                }
            });
        }
    }
コード例 #2
0
    public void RemoveMonsterWarship(MonsterWarship monster)
    {
        if (monster == null)
        {
            return;
        }

        monster.Release();
        _monsterWarshipList.Remove(monster);
    }
コード例 #3
0
    public MonsterWarship CreateMonsterWarship(CopyMonsterData.MonsterData data, WarshipL.CreateCallback callback)
    {
        MonsterWarship monster = new MonsterWarship(data);

        monster.Initialize(delegate(WarshipL ws)
        {
            _monsterWarshipList.Add(monster);
            if (null != callback)
            {
                callback(ws);
            }
        });

        return(monster);
    }