示例#1
0
        // 移動処理
        private void Move(ActorController actor_controller)
        {
            float direction_magnitude = direction_.magnitude;

            if (animator_)
            {
                animator_.SetFloat("movement", direction_magnitude);
            }

            if (direction_magnitude == 0.0f)
            {
                return;
            }

            ActorParameter parameter = actor_controller.GetActorParameter();

            nav_mesh_agent_.Move(direction_ * parameter.MoveSpeed * speed_rate_ * Time.deltaTime);

            // 物理演算の時の回転を切ったのため直接にtransformで回転する
            direction_ = transform.InverseTransformDirection(direction_);
            var turn_amount = Mathf.Atan2(direction_.x, direction_.z);

            transform.Rotate(0f, turn_amount * parameter.TurnSpeed * Time.deltaTime, 0f);
        }
示例#2
0
 /// <summary>
 /// 火に入った処理
 /// </summary>
 /// <param name="actor_controller"></param>
 public override void Burn(ActorController actor_controller)
 {
 }
示例#3
0
 /// <summary>
 /// 水に入った処理
 /// </summary>
 /// <param name="actor_controller"></param>
 public override void Swim(ActorController actor_controller)
 {
 }
示例#4
0
 public void SetTarget(ActorController target)
 {
     target_ = target;
 }
示例#5
0
 /// <summary>
 /// 終了処理
 /// </summary>
 /// <param name="actor_controller"></param>
 public override void Uninit(ActorController actor_controller)
 {
     GetComponent <SphereCollider>().enabled = true;
     GetComponent <NavMeshAgent>().enabled   = true;
 }
示例#6
0
 public virtual void OnPushExit(ActorController actor_controller)
 {
 }
示例#7
0
 public abstract void Init(ActorController actor_controller);
示例#8
0
 public abstract void Swim(ActorController actor_controller);
示例#9
0
 public abstract void Burn(ActorController actor_controller);
示例#10
0
 public override void Uninit(ActorController actor_controller)
 {
     nav_mesh_agent_.isStopped = true;
 }
示例#11
0
 public override void Init(ActorController actor_controller)
 {
     gameObject.SetActive(false);
 }
示例#12
0
 public override void Uninit(ActorController actor_controller)
 {
     gameObject.SetActive(true);
 }