hello,
i’m trying to use character customization example in my project, all seems to work well but i can’t see animation changeing between idle and walk when the server was started, I have tryed with RPC but no luck.
This is my modified fpsinputcontroller, it essentially set the character when the character was generated and play the animations when you move
private var motor : CharacterMotor;
var Character : GameObject;
var NetV : NetworkView;
// Use this for initialization
function Awake () {
motor = GetComponent(CharacterMotor);
}
// Update is called once per frame
function Update () {
// Get the input vector from kayboard or analog stick
var directionVector = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
if (directionVector != Vector3.zero) {
// Get the length of the directon vector and then normalize it
// Dividing by the length is cheaper than normalizing when we already have the length anyway
var directionLength = directionVector.magnitude;
directionVector = directionVector / directionLength;
// Make sure the length is no bigger than 1
directionLength = Mathf.Min(1, directionLength);
// Make the input vector more sensitive towards the extremes and less sensitive in the middle
// This makes it easier to control slow speeds when using analog sticks
directionLength = directionLength * directionLength;
// Multiply the normalized direction vector by the modified length
directionVector = directionVector * directionLength;
}
// Apply the direction to the CharacterMotor
motor.inputMoveDirection = transform.rotation * directionVector;
motor.inputJump = Input.GetButton("Jump");
SetCharacter();
networkView.RPC("AnimateCharacter", RPCMode.All);
//Add the character animation component to observed
NetV.observed = Character.animation;
}
// Require a character controller to be attached to the same game object
@script RequireComponent (CharacterMotor)
@script AddComponentMenu ("Character/FPS Input Controller")
function SetCharacter(){
//yield WaitForSeconds (4);
if (Character == null){
Character = gameObject.Find("female");
}
if (!gameObject.Find("female")){
Character = gameObject.Find("male");
}else{
return;
}
}
@RPC
function AnimateCharacter(info : NetworkMessageInfo){
if (Input.GetAxis("Vertical") && Input.GetAxis("Horizontal")){
Character.animation.CrossFade("walk");
}else{
Character.animation.CrossFade("idle1");
}
}
any suggestion will be very, very appreciated & sorry for my english