示例#1
0
	public void SetData(Vector3 dest, float height, float last_time, float up_ratio, OnBehaviorFinsh on_finish)
	{
		if(last_time <= 0 || up_ratio <= 0 || up_ratio >= 1) return;

        dest.y += 50.0f;
        _Destination = dest;
        _Destination.y = ECUtility.GetSupportPlaneHeight(dest);
		_StartHeight = m_ECObj.transform.position.y;
        _StopHeight = _Destination.y;
        _MaxHeight = height + _StartHeight;

        //Debug.LogWarning("_StartHeight = " + _StartHeight + " _StopHeight = " + _StopHeight + " _MaxHeight = " + _MaxHeight + " height = " + height);

        float upward_time = last_time*up_ratio;
        _UpAcceleration = 2 * height / (upward_time * upward_time);
        _StartYVelocity = 2 * height / upward_time;
		float downward_time = last_time*(1-up_ratio);
        _DownAcceleration = 2 * (_MaxHeight - _StopHeight) / (downward_time * downward_time);

        _HoriVelocity = (_Destination - m_ECObj.transform.position) / last_time;

		m_onFinish = on_finish;
		_CurPhase = JUMP_PHASE.JP_UPWARD;
		_LastScecond = 0;
	}
示例#2
0
    public void SetData(Vector3 vDest, float s, OnBehaviorFinsh onFinish)
    {
        m_onFinish = onFinish;
        m_vDest = vDest;
        m_fSpeed = s;

        Vector3 v = m_Trans.forward;
        if (vDest != m_Trans.position)
            v = vDest - m_Trans.position;

        v.y = 0;
        m_vDir = Vector3.Normalize(v);
        if ((vDest - m_Trans.position).magnitude < 0.2)
        {
            m_fDist = -1f;
        }
        else
        {
            m_fDist = v.magnitude;
        }
        
        m_vLastPos = m_Trans.position;
        SyncPushMoveToServer(false);
        m_bSync = false;
    }
示例#3
0
    public void SetData(Vector3 vDest, Vector3 vO, float s, OnBehaviorFinsh onFinish)
    {
        m_onFinish = onFinish;
        m_vDest = vDest;
        m_vO = vO;
        m_fSpeed = s;
        var curpos = m_Trans.position;

        var crossA = Vector3.Cross(curpos - m_vO, vDest - m_vO);
        
        curpos.y = 0;
        vO.y = 0;
        vDest.y = 0;

        float a = Vector3.Angle(curpos - vO, vDest - vO) * Mathf.Deg2Rad;
        m_ftime = a * (curpos - vO).magnitude / s;
        m_fAngularVelocity = (crossA.y > 0 ? 1 : -1) * s / (curpos - vO).magnitude;

        //Debug.Log(string.Format("dst is {0}", vDest));

        //Debug.Log(string.Format("dst1 in c# is {0}", (vDest - vO).magnitude));
        //Debug.Log(string.Format("dst2 in c# is {0}", (curpos - vO).magnitude));

        SyncPushMoveToServer(false);
        m_bSync = false;
    }
示例#4
0
    public void SetData(float s, OnBehaviorFinsh onFinish, bool isSkillMove = false)
    {
        if (m_Trans == null) return;

        m_onFinish = onFinish;
        m_fSpeed = s;
        m_vLastNotifyPos = m_Trans.position;

        m_bIsSkillMove = isSkillMove;

        SyncPushMoveToServer(false);
        m_bSync = false;
    }
示例#5
0
    public void SetData(Vector3 vDest, float speed, OnBehaviorFinsh onFinish)
    {
        m_onFinish = onFinish;
        vDest.y = 0;
        _destdir = Vector3.Normalize(vDest);
        GameObject obj = m_ECObj.gameObject;
        Vector3 v = obj.transform.forward;
        v.y = 0;
        _startdir = Vector3.Normalize(v);

        _totaltime = Vector3.Angle(_startdir, _destdir) / speed;
        _timepassed = 0;
    }
示例#6
0
    public void SetData(Vector3 vDest, float time, OnBehaviorFinsh onFinish)
    {
        if (time <= 0)
        {
            Debug.LogWarning("Move time can not be 0 !!!!");
            return;
        }
        vDest.y += 50.0f;
        vDest.y = ECUtility.GetSupportPlaneHeight(vDest);
        _Destination = vDest;
        Vector3 dis = vDest - m_ECObj.transform.position;
        _Velocity = dis / time;
        _FinishedTime = Time.time + time;

        //Debug.LogWarning("dest = " + vDest + " src = " + m_ECObj.transform.position + " v = " + _Velocity + " t = " + time);
    }
示例#7
0
    public void SetData(Vector3 vDest, float s, OnBehaviorFinsh onFinish)
    {
        m_onFinish = onFinish;
        m_vDest = vDest;
        m_fSpeed = s;

        Vector3 v = vDest - m_Trans.position;
        v.y = 0;
        m_vDir = Vector3.Normalize(v);
        m_fDist = v.magnitude;
        if (m_fDist > 0.05f)
            m_speedY = (vDest.y - m_Trans.position.y) / (m_fDist / m_fSpeed);

//         if (m_fDist > 1e-4f)
//             m_Trans.forward = m_vDi    
    }
示例#8
0
    public void SetData(Vector3 vDest, float s, OnBehaviorFinsh onFinish, bool bSkillMove = false)
    {
        if (m_Trans == null) return;

        m_onFinish = onFinish;
        m_vDest = vDest;
        m_fSpeed = s;
        m_bIsSkillMove = bSkillMove;

        Vector3 v = m_Trans.forward;
        if (vDest != m_Trans.position)
            v = vDest - m_Trans.position;
        v.y = 0;
        m_vDir = Vector3.Normalize(v);
        m_fDist = v.magnitude;
        //m_bSync = Vector3.Angle(m_Trans.forward, m_vDir) > 45;
		//m_vDir.y = 0;
        //m_Trans.forward = m_vDir;
		m_vAdjustDir = Vector3.zero;

        SyncPushMoveToServer(false);
        m_bSync = false;
    }
示例#9
0
 public void AddHPAutoMoveBehavior(Vector3 dest, float speed, OnBehaviorFinsh onBehaviorFinish)
 {
     ECHPAutoMoveBehavior beh = ECHPAutoMoveBehavior.Create();
     AddBehavior(beh);
     beh.SetData(dest, speed, onBehaviorFinish);
 }
示例#10
0
 public void AddHPJoystickMoveBehavior(float speed, bool isSkillMove, OnBehaviorFinsh onBehaviorFinish)
 {
     ECHPJoystickMoveBehavior beh = ECHPJoystickMoveBehavior.Create();
     AddBehavior(beh);
     beh.SetData(speed, onBehaviorFinish, isSkillMove);
 }
示例#11
0
 public void AddHPMoveBehavior(Vector3 dest, float speed, bool isSkillMove, OnBehaviorFinsh onBehaviorFinish)
 {
     ECHPMoveBehavior beh = ECHPMoveBehavior.Create();
     AddBehavior(beh);
     beh.SetData(dest, speed, onBehaviorFinish, isSkillMove);
 }
示例#12
0
    /*
    public void AddJumpBehavior(Vector3 dest, float height, float last_time, float up_ratio, OnBehaviorFinsh onBehaviorFinish)
    {
        ECJumpBehavior beh = ECJumpBehavior.Create();
        AddBehavior(beh);
        beh.SetData(dest, height, last_time, up_ratio, onBehaviorFinish);
    }
     * */

    public void AddChargeBehavior(Vector3 dest, float last_time, OnBehaviorFinsh onBehaviorFinish)
    {
        ECChargeBehavior beh = ECChargeBehavior.Create();
        AddBehavior(beh);
        beh.SetData(dest, last_time, onBehaviorFinish);
    }
示例#13
0
 public void AddTurnBehavior(Vector3 destdir, float speed, OnBehaviorFinsh onBehaviorFinish)
 {
     ECTurnBehavior beh = ECTurnBehavior.Create();
     AddBehavior(beh);
     beh.SetData(destdir, speed, onBehaviorFinish);
 }