Ejemplo n.º 1
0
        /// <summary>
        /// 结束输入移动
        /// </summary>
        /// <param name="direction">移动方向</param>
        public void EndInputMoveDirection()
        {
            isinput = false;
            MountsComponent mountsComponent = Owner.GetUnitComponent <MountsComponent>();

            if (mountsComponent != null && mountsComponent.IsRide)
            {
                mountsComponent.SetRun(false);
            }
        }
Ejemplo n.º 2
0
        private void UpdateGravity(float deltaTime, float unscaledDeltaTime)
        {
            MountsComponent mountsComponent = Owner.GetUnitComponent <MountsComponent>();

            if (mountsComponent != null && mountsComponent.IsRide)
            {
                mountsComponent.Mounts.CharacterController.Move(Vector3.down * 9.8f * deltaTime);
                return;
            }
            if (m_CharacterController.isGrounded)
            {
                return;
            }
            m_CharacterController.Move(Vector3.down * 9.8f * deltaTime);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新输入
        /// </summary>
        private void UpdateInput(float deltaTime, float unscaledDeltaTime)
        {
            MountsComponent mountsComponent = Owner.GetUnitComponent <MountsComponent>();

            if (mountsComponent != null && mountsComponent.IsRide)
            {
                mountsComponent.Mounts.transform.rotation = Quaternion.Slerp(Owner.transform.rotation, InputRotation, deltaTime * 15f);
                mountsComponent.Mounts.CharacterController.Move(m_InputMoveDirection * Speed * m_InputSpeed * deltaTime);
                mountsComponent.SetRun(true);
                return;
            }

            Owner.transform.rotation = Quaternion.Slerp(Owner.transform.rotation, InputRotation, deltaTime * 15f);
            m_CharacterController.Move(m_InputMoveDirection * Speed * m_InputSpeed * deltaTime);
            m_AnimatorComponent.SetFloatValue(Constant.AnimatorParam.Speed, Speed * m_InputSpeed);
        }
Ejemplo n.º 4
0
        protected internal override void OnAttached(EntityBase childEntity, Transform parentTransform, object userData)
        {
            base.OnAttached(childEntity, parentTransform, userData);

            AnimatorComponent owneranimatorComponent = m_Owner.GetOrAddUnitComponent <AnimatorComponent>();

            owneranimatorComponent.SetBoolValue(Constant.AnimatorParam.IsRide, true);
            RideEntity rideEntity = GameEntry.DataTable.GetDataTable <RideDBModel>().Get(m_MountsData.TypeId);

            owneranimatorComponent.SetIntValue(Constant.AnimatorParam.RideType, rideEntity.RideType);

            m_Owner.GetOrAddUnitComponent <AnimatorComponent>().SetBoolValue(Constant.AnimatorParam.IsRide, true);
            MountsComponent mountsComponent = m_Owner.GetUnitComponent <MountsComponent>();

            mountsComponent.IsRide = true;
            mountsComponent.Mounts = this;
        }
Ejemplo n.º 5
0
        protected internal override void OnShow(object userData)
        {
            base.OnShow(userData);

            m_MountsData = userData as MountsData;

            if (m_MountsData == null)
            {
                GameEntry.Entity.HideEntity(this);
                Log.Error("Mounts data is invalid.");
                return;
            }

            m_CharacterController            = gameObject.GetOrAddComponent <CharacterController>();
            m_CharacterController.center     = new Vector3(0, 1, 0);
            m_CharacterController.height     = 2f;
            m_CharacterController.radius     = 0.5f;
            m_CharacterController.stepOffset = 0.5f;

            animatorComponent = GetOrAddUnitComponent <AnimatorComponent>();

            m_Owner = (PlayerBase)GameEntry.Entity.GetEntity(m_MountsData.OwnerId);

            if (m_Owner == null || !m_Owner.IsAvailable)
            {
                GameEntry.Entity.HideEntity(this);
                return;
            }

            MountsComponent mountsComponent = m_Owner.GetUnitComponent <MountsComponent>();

            if (mountsComponent == null || mountsComponent.IsRide)
            {
                GameEntry.Entity.HideEntity(this);
                return;
            }

            this.gameObject.SetLayerRecursively(m_Owner.gameObject.layer);
            SelfTransform.position = m_Owner.SelfTransform.position;
            SelfTransform.rotation = m_Owner.SelfTransform.rotation;

            RideEntity rideEntity = GameEntry.DataTable.GetDataTable <RideDBModel>().Get(m_MountsData.TypeId);

            GameEntry.Entity.AttachEntity(m_Owner, this, rideEntity.Point);
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 遥感中心点点击
        /// </summary>
        /// <param name="gameEventBase"></param>
        private void OnRockerInClick(GameEventBase gameEventBase)
        {
            RockerInClickGameEvent rockerInClickGameEvent = (RockerInClickGameEvent)gameEventBase;
            MountsComponent        mountsComponent        = Owner.GetUnitComponent <MountsComponent>();

            if (mountsComponent == null)
            {
                return;
            }

            if (mountsComponent.IsRide)
            {
                mountsComponent.HideMounts();
            }
            else
            {
                mountsComponent.ShowMounts(UnityEngine.Random.Range(1, 10));
            }
        }
Ejemplo n.º 7
0
        public override void OnUpdate(float deltaTime, float unscaledDeltaTime)
        {
            if (isforceBack)
            {
                MountsComponent mountsComponent = Owner.GetUnitComponent <MountsComponent>();


                forceTime += unscaledDeltaTime;
                if (forceTime > forceNeedTime)
                {
                    isforceBack = false;
                    canContrl   = true;
                    if (mountsComponent != null && mountsComponent.IsRide)
                    {
                        mountsComponent.Mounts.transform.position = this.moveTarget;
                        return;
                    }
                    Owner.transform.position = this.moveTarget;
                    return;
                }
                float amount = forceTime * 1f / forceNeedTime;

                if (mountsComponent != null && mountsComponent.IsRide)
                {
                    mountsComponent.Mounts.transform.position = Vector3.Lerp(this.startPosition, this.moveTarget, amount);
                    return;
                }
                Owner.transform.position = Vector3.Lerp(this.startPosition, this.moveTarget, amount);

                return;
            }

            UpdateGravity(deltaTime, unscaledDeltaTime);

            if (isinput && canContrl)
            {
                UpdateInput(deltaTime, unscaledDeltaTime);
                return;
            }

            m_AnimatorComponent.SetFloatValue(Constant.AnimatorParam.Speed, 0);
        }