public override void setVisualPosition(WaponHolder wapons, int id) // 武器それぞれの「表示・表示の位置」をあらかじめ計算して配列に保存しておく。 { if (id > 2) { return; } var wapon = wapons[id]; var aspect = GM.cameras.iface.aspect; var scale = new Vector3(1.0f, 1.0f, 0.55f); scale = Vector3.Scale(scale, wapon.tf.localScale); var showx = (aspect - 0.05f) - wapon.mf.sharedMesh.bounds.max.z * scale.z * 0.7f; var showy = (-1.0f + 0.05f) - wapon.mf.sharedMesh.bounds.min.y * scale.y * 2.0f; var show = new Vector3(showx, showy, 1.5f); var hide = new Vector3(0.0f, 0.0f, 2.0f); switch (id) { case 0: { hide.x = (aspect + 0.05f) - wapon.mf.sharedMesh.bounds.min.z * scale.z * 0.7f; hide.y = showy; break; } case 1: { hide.x = showx; hide.y = (-1.0f - 0.05f) - wapon.mf.sharedMesh.bounds.max.y * scale.y * 2.0f; break; } } visualPositions[id].show = show; visualPositions[id].hide = hide; visualPositions[id].now = hide; visualPositions[id].scale = scale; }
public void buildGuiLocations(WaponHolder wapons) { visualPositions = new WaponPositionUnit[wapons.length]; for (var i = 0; i < wapons.length; i++) { setVisualPosition(wapons, i); } visualRotation = Quaternion.Euler(new Vector3(320.0f, 90.0f, 0.0f)); }
public abstract void setVisualPosition(WaponHolder wapons, int id);