提示コードですが/*武器 切り替え*/
部のように武器がプレイヤーの中心を回転する処理を記述しているのですがこれをアニメーション使って実装したいのですがプレイヤーを中心に回転移動するため座標をどのようにアニメーションで設定したらいいのかわかりません。
これをするにはアニメーションをどうやって設定するのでしょうか?参考サイトではただ上下に動いているだけなので参考になりません。
参考サイト:https://techacademy.jp/magazine/9284
参考サイト:https://yttm-work.jp/unity/unity_0016.html
cs
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.Events; 5 6public class TwinDagger : MonoBehaviour 7{ 8 public GameObject player; 9 public GameObject camera; 10 [SerializeField] float rotateSpeed = 600; 11 [SerializeField] float orbitSpeed = 2; 12 [SerializeField] float Y_distance = 0.5f; 13 [SerializeField] float distance = 2; 14 15 [SerializeField] Material material_Orbit; // 16 [SerializeField] Material material_Basic; // 17 18 private Animator animator; 19 20 void Start() 21 { 22 animator = GetComponent<Animator>(); 23 24 } 25 26 void Update() 27 { 28 29 } 30 31 /*########################################## カメラの回転に沿って武器を回転移動 ##########################################*/ 32 private void Orbit() 33 { 34 Quaternion q = Quaternion.Euler(transform.forward); 35 Vector3 p = Vector3.Normalize(camera.transform.right) * distance; 36 37 Vector3 pDash = q * p; 38 pDash.y = Y_distance; 39 // transform.position = pDash; 40 41 } 42 43 /*########################################## 武器 切り替え マテリアルに変更 ##########################################*/ 44 public void SetOrbit_Material() 45 { 46 transform.Find("Object").GetComponent<Renderer>().material = material_Orbit; 47 } 48 49 /*########################################## 武器 通常マテリアルに変更 ##########################################*/ 50 public void SetBasic_Material() 51 { 52 transform.Find("Object").GetComponent<Renderer>().material = material_Basic; 53 } 54 55 /*########################################## 武器 切り替え ##########################################*/ 56 public void Orbit_Animation() 57 { 58 transform.Find("Object").GetComponent<Renderer>().material = material_Orbit; 59 transform.RotateAround(player.transform.position, Vector3.up, orbitSpeed * Time.deltaTime); 60 } 61 62 63 /*########################################## 軌道アニメーション終了 ##########################################*/ 64 private void OrbitEnd_Evnet() 65 { 66 67 } 68
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2022/03/19 03:29