ろくろをまわして、オブジェクトの形を変形させるスクリプトをかきたいのですが、うまくいきません。。
今は、、
オブジェクトの頂点をSphereCastで読み取って、それらの頂点に、z座標を+してあげているのですが(本当は、オブジェクトの内部に向かって凹んで欲しい。。)
なぜか綺麗に凹まず(たぶんSphereCastに入った頂点全てをidに取りいれきれていない?)、更には
IndexOutOfRangeException: Array index is out of range.
rokuro.Update () (at Assets/rokuro.cs:21)
とゆうエラーまで出て来て、お手上げ状態です、、\(+w+)/
アドバイスお願いいたします。。。
using UnityEngine;
using System.Collections;
public class rokuro : MonoBehaviour {
void Start () {
}
void Update () { int kaiten=300; transform.Rotate (0, kaiten,0); Mesh mesh = GetComponent<MeshFilter> ().mesh; Vector3[] vertices = mesh.vertices; Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; int layer001 = LayerMask.NameToLayer ("player"); int layermask = 1 << layer001; if (Input.GetButton("Fire1")) { if(Physics.SphereCast(ray,0.1f,out hit,Mathf.Infinity,layermask)){ if(hit.collider==gameObject.GetComponent<Collider>()){ int id=hit.triangleIndex; vertices[id].z=vertices[id].z+2; mesh.vertices=vertices; mesh.RecalculateBounds();
}
}
}
}
}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/24 23:39
2015/12/25 02:28
2015/12/25 11:46