Question by
ErwinJB · Jul 11, 2016 at 02:09 AM ·
unity 5monodevelopvisualstudio
LeftHand Placement weapon manager
I have some problems with ik left hand placement unity explotes with mi c# code:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[RequireComponent(typeof(Animator))]
public class ControladorArma : MonoBehaviour
{
float IKweight=1.0f;
private int armaActual = 0;
Animator anim;
[Header("Inventario")]
public List<Arma> armas = new List<Arma>();//lista de armas
[Header("posicionesIKArmas")]
public List<GameObject> PosManoIzquierda = new List<GameObject>();//lista de manoizquierda
[Header("Ubicaciones de Equipamento")]
public List<Transform> equipado = new List<Transform>();// lista de equipado para cada arma
public List<Transform> Desequipado = new List<Transform>();//lista de desequipado para cada arma
// Use this for initialization
void Start()
{
anim = GetComponent<Animator>();
}
// Update is called once per frame
void Update()
{
//IKweight = Mathf.MoveTowards(IKweight, (UserInput.user.aim) ? 1.0f : 0.0f, Time.deltaTime * 5);//asigna valor del peso del ikweight matematicamente
if (Input.GetKeyDown("1"))
{
cambiarArma();
}
}
void OnAnimationIK()
{
anim.SetIKPositionWeight(AvatarIKGoal.LeftHand, IKweight);
anim.SetIKRotationWeight(AvatarIKGoal.LeftHand, IKweight);
Vector3 posicion = PosManoIzquierda[armaActual].transform.TransformDirection(Vector3.zero);
//anim.SetIKPosition(AvatarIKGoal.LeftHand, PosManoIzquierda[armaActual].transform.position);
//anim.SetIKRotation(AvatarIKGoal.LeftHand, PosManoIzquierda[armaActual].transform.rotation);
}
void cambiarArma() {
armas[armaActual].gameObject.SetActive(false);
do
{
armaActual = (armaActual + 1) % armas.Count;
} while (!armas[armaActual].IsOwned());
armas[armaActual].gameObject.SetActive(true);
}
}
and the Arma script is this: using UnityEngine; using System.Collections;
public class Arma : MonoBehaviour {
[SerializeField]
//int municionTotal;
public int municion = 0;
public int cartucho = 0;
int damage;
int velDisparo;
int cargador;
public bool sw = false;
private bool enPropiedad;
void Start()
{
if (this.gameObject.name.Equals ("M4A1")) {
//municionTotal = 120;
municion = 30;
cartucho = 90;
Camera.main.GetComponent<PlayerGUI>().Municion = "30";
Camera.main.GetComponent<PlayerGUI>().Cartucho = "90";
sw = true;
}
}
public int Municion {
get {
return this.municion;
}
set {
municion = value;
}
}
public int Cartucho {
get {
return this.cartucho;
}
set {
cartucho = value;
}
}
public bool Sw {
get {
return this.sw;
}
set {
sw = value;
}
}
//en propiedad
public bool IsOwned()
{
return enPropiedad;
}
public void Owned()
{
enPropiedad = true;
}
}
Comment
Your answer
Follow this Question
Related Questions
Unity3.5.3 user prefrefence has no option for VS 0 Answers
Calling Unity API Reference from MonoDevelop 2 Answers
Portable Unity3d editor ? 0 Answers
Unity 5+ compatibility with VS2012 - ? 0 Answers