質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

1回答

1393閲覧

Unity アニメーション 推移 SE

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2018/11/15 03:45

前提・実現したいこと

Unityのアニメーションのトリガー起動時にSEを出す方法を教えてくれませんか?

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
// Inspector
[SerializeField] private float m_WalkSpeed = 2.0f;
[SerializeField] private float m_RunSpeed = 3.5f;
[SerializeField] private float m_RotateSpeed = 8.0f;
[SerializeField] private float m_JumpForce = 300.0f;
[SerializeField] private float m_RunningStart = 1.0f;

// member private Rigidbody m_RigidBody = null; private Animator m_Animator = null; private float m_MoveTime = 0; private float m_MoveSpeed = 0.0f; private bool m_IsGround = true; /*! * ---------------------------------------------------------------------- * @brief 生成 */ private void Awake() { m_RigidBody = this.GetComponentInChildren<Rigidbody>(); m_Animator = this.GetComponentInChildren<Animator>(); m_MoveSpeed = m_WalkSpeed; } /*! * ---------------------------------------------------------------------- * @brief 初期化 */

// private void Start()
// {
// }

/*! * ---------------------------------------------------------------------- * @brief 更新 */ private void Update() { if( null == m_RigidBody ) return; if( null == m_Animator ) return; // check ground float rayDistance = 0.3f; Vector3 rayOrigin = (this.transform.position + (Vector3.up * rayDistance * 0.5f)); bool ground = Physics.Raycast( rayOrigin, Vector3.down, rayDistance, LayerMask.GetMask( "Default" ) ); if( ground != m_IsGround ) { m_IsGround = ground; // landing if( m_IsGround ) { m_Animator.Play( "landing" ); } } // input Vector3 vel = m_RigidBody.velocity; float h = Input.GetAxis( "Horizontal" ); float v = Input.GetAxis( "Vertical" ); bool isMove = ((0 != h) || (0 != v)); m_MoveTime = isMove? (m_MoveTime + Time.deltaTime) : 0; bool isRun = (m_RunningStart <= m_MoveTime); // move speed (walk / run) float moveSpeed = isRun? m_RunSpeed : m_WalkSpeed; m_MoveSpeed = isMove? Mathf.Lerp( m_MoveSpeed, moveSpeed, (8.0f * Time.deltaTime) ) : m_WalkSpeed;

// m_MoveSpeed = moveSpeed;

Vector3 inputDir = new Vector3( h, 0, v ); if( 1.0f < inputDir.magnitude ) inputDir.Normalize(); if( 0 != h ) vel.x = (inputDir.x * m_MoveSpeed); if( 0 != v ) vel.z = (inputDir.z * m_MoveSpeed); m_RigidBody.velocity = vel; if( isMove ) { // rotation float t = (m_RotateSpeed * Time.deltaTime); Vector3 forward = Vector3.Slerp( this.transform.forward, inputDir, t ); this.transform.rotation = Quaternion.LookRotation( forward ); } m_Animator.SetBool( "isMove", isMove ); m_Animator.SetBool( "isRun", isRun ); // jump if( Input.GetButtonDown( "Jump" ) && m_IsGround ) { m_Animator.Play( "jump" ); m_RigidBody.AddForce( Vector3.up * m_JumpForce ); } // quit if( Input.GetKeyDown( KeyCode.Escape ) ) Application.Quit(); }

}

試したこと

補足情報(FW/ツールのバージョンなど)

Unity2018.2.15f1

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sakura_hana

2018/11/15 04:25

質問者さんの言う「トリガー起動時」とは何ですか?
退会済みユーザー

退会済みユーザー

2018/11/15 04:36

例えばアニメーションのRunからJumpに変化したときのことを(トリガー起動)というと思います・・・・    言い方が分からなかったもので・・
MMashiro

2018/11/15 07:30

トリガー と 起動時 は微妙に似た意味のニュアンスなのであえてトリガーという言葉を使うのであれば「RunからJumpの遷移をトリガーに〇〇したいのですが」とかだとわかりやすいかもしれません
guest

回答1

0

「RunからJumpに変化したとき」なら
m_Animator.Play( "jump" );の後ろにでもSE再生のコードを入れればいいかと思います。
AudioSource.Play - Unity スクリプトリファレンス


Unityでは「トリガー起動」という言葉はありません。
下手な言い換えは誤解を生むので「アニメーションのRunからJumpに変化したとき」とやりたいことをそのまま書いてもらった方が分かりやすいです。
次回質問する時は質問するときのヒント|teratail(テラテイル)を見てもらえると助かります。

投稿2018/11/15 05:01

sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問