

Unity超初心者の大学４年女です。  
「UnityによるVRアプリケーション開発」の８章をベースにUnityで美術館を作っています。  
VRカメラで館内の絵を周って見る、ところまでは完成したんですがblenderで作った二階建ての美術館の階段をカメラが登ってくれません。階段とカメラ両方にコライダをつけたりキャラクターにカメラをアタッチして登らせようとしたんですが、全てうまくいかずカメラが階段を通り抜けて一階をずっとうろうろしてしまいます。  
カメラに階段を登って降りて（登ってる風に斜めに上昇したり下降したりして）ほしいのですが、どうしたらよいでしょうか。

貼り付けたC#は「UnityによるVRアプリケーション開発」の８章に記載されているC#です。  
C#をどこに貼り付けてよいのかわからないのでJavaの欄に貼り付けました。  
上のC#→objectにドロップしたピクチャがplay時に写るようにするためのスクリプト  
下のC#→カメラに館内の絵（ピクチャ）を見て周って（動いて）もらうためのスクリプト  
環境→Unity 5.6.1f1 Personal(64bit)  
建物制作→Blender  
VRカメラ→Dive_camera

よろしくお願いします。

[code]

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class PopulateArtFrames : MonoBehaviour
    {
        public Texture[] images;
        // Use this for initialization
        void Start()
        {
            int imageIndex = 0;
            foreach (Transform artwork in transform)
            {
                GameObject art = artwork.Find("Image").gameObject;
                Renderer rend = art.GetComponent<Renderer>();
                Shader shader = Shader.Find("Standard");
                Material mat = new Material(shader);
                mat.mainTexture = images[imageIndex];
                rend.material = mat;
                imageIndex++;
                if (imageIndex == images.Length) imageIndex = 0;
            }
    
        }
    
        // Update is called once per frame
        void Update()
        {
    
        }
    }
    
[/code]

[code]

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class ExhibitionRide : MonoBehaviour
    {
        public GameObject artworks;
        public float startDelay = 3f;
        public float transitionTime = 5f;
    
        private AnimationCurve xCurve, zCurve, rCurve;
        // Use this for initialization
        void Start()
        {
            int count = artworks.transform.childCount + 1;
            Keyframe[] xKeys = new Keyframe[count];
            Keyframe[] zKeys = new Keyframe[count];
            Keyframe[] rKeys = new Keyframe[count];
            int i = 0;
            float time = startDelay;
            xKeys[0] = new Keyframe(time, transform.position.x);
            zKeys[0] = new Keyframe(time, transform.position.z);
            rKeys[0] = new Keyframe(time, transform.position.y);
            foreach (Transform artwork in artworks.transform)
            {
                i++;
                time += transitionTime;
                Vector3 pos = artwork.position - artwork.forward;
                xKeys[i] = new Keyframe(time, pos.x);
                zKeys[i] = new Keyframe(time, pos.z);
                rKeys[i] = new Keyframe(time, artwork.rotation.y);
            }
            xCurve = new AnimationCurve(xKeys);
            zCurve = new AnimationCurve(zKeys);
            rCurve = new AnimationCurve(rKeys);
    
    
        }
    
        // Update is called once per frame
        void Update()
        {
            transform.position = new Vector3(xCurve.Evaluate(Time.time),
                transform.position.y, zCurve.Evaluate(Time.time));
            Quaternion rot = transform.rotation;
            rot.y = rCurve.Evaluate(Time.time);
            transform.rotation = rot;
    
        }
    }
    
[/code]


CC BY-SA 3.0
2017-11-16T11:07:43.107
39623
2017-11-16T13:45:06.020
2017-11-16T13:45:06.020
19110
26225
question
c# unity3d
カメラに階段を登ってほしい