示例#1
0
    void InitMovePlayerByMarkSpeed()
    {
        Transform tran = AiPathScript.transform;

        Transform[] tranArray = new Transform[2];
        tranArray[0] = transform;
        tranArray[1] = tran.GetChild(MarkCount);

        EndPos = tranArray[1].position;
        AiMark markScript = tranArray[1].GetComponent <AiMark>();

        AimMvToMarkTran = markScript.transform;
        if (EndPos == tranArray[0].position)
        {
            //move to next mark point
            SpeedA = markScript.MvSpeed;
            MovePlayerOnCompelteITween();
            return;
        }

        PathNodes = AiPathScript.GetPathNodes(MarkCount);
        if (PathNodes == null)
        {
            Debug.Log("PathNodes is null! MarkCount " + MarkCount);
            return;
        }

        EndPos         = PathNodes[1];
        ForwardMoveVal = Vector3.Normalize(EndPos - tranArray[0].position);
        SpeedB         = markScript.MvSpeed;
        float disVal   = 0f;
        int   maxNodes = PathNodes.Length;

        for (int i = 1; i < maxNodes; i++)
        {
            disVal += Vector3.Distance(PathNodes[i - 1], PathNodes[i]);
        }

        float timeVal = (2f * disVal) / (SpeedA + SpeedB);

        TimeRotation = timeVal;
        if (SpeedB != SpeedA)
        {
            JiaSuDuVal = ((SpeedB - SpeedA) * (SpeedA + SpeedB)) / (2f * disVal);
        }
        else
        {
            JiaSuDuVal = 0f;
        }
        RotationStart = tranArray[0].rotation;
        RotationEnd   = tranArray[1].rotation;
//		Debug.LogError("SpeedA *** "+SpeedA+", MarkCount "+MarkCount+", maxNodes "+maxNodes);
//		Debug.LogWarning("SpeedA *** "+SpeedA+", SpeedB "+SpeedB);
        if (!IsStartMovePlayerByMark)
        {
            //StartCoroutine(MovePlayerByMarkSpeed());
            IsStartMovePlayerByMark = true;
            XKXuNiPlayerCtrl.GetInstance().InitXuNiPlayerInfo(markScript);
        }
    }
示例#2
0
    void OnTriggerEnter(Collider other)
    {
        if (IsDonnotSpawnNpcTest)
        {
            return;             //test;
        }

        if (JiFenJieMianCtrl.GetInstance() != null && JiFenJieMianCtrl.GetInstance().GetIsShowFinishTask())
        {
            return;
        }

        if (!XkGameCtrl.IsMoveOnPlayerDeath)
        {
            if (!XkGameCtrl.IsActivePlayerOne && !XkGameCtrl.IsActivePlayerTwo)
            {
                return;
            }
        }

        //if (Network.peerType == NetworkPeerType.Client) {
        //    return;
        //}

        //XkPlayerCtrl ScriptPlayer = other.GetComponent<XkPlayerCtrl>();
        //if (ScriptPlayer == null) {
        //	return;
        //}

        XKXuNiPlayerCtrl ScriptPlayer = other.GetComponent <XKXuNiPlayerCtrl>();

        if (ScriptPlayer == null)
        {
            return;
        }

        //test
        //		if (ScriptPlayer.PlayerSt == PlayerTypeEnum.FeiJi) {
        //			IsDonnotSpawnNpcTest = true;
        //		}
        //		else {
        //			return;
        //		}

        //Debug.Log("XKTriggerSpawnNpc::OnTriggerEnter -> hit "+other.name);
        for (int i = 0; i < SpawnPointArray.Length; i++)
        {
            SpawnPointArray[i].SpawnPointAllNpc();
        }
    }
 void Start()
 {
     Instance = this;
 }