コード例 #1
0
        public void Cmd_ObjectSession_Move(GameObject obj, NetworkMove netMove)
        {
            //AssertGameObjectNull(obj);
            if (obj == null)
            {
                return;
            }

            ObjectSession session;

            if ((session = obj.GetComponent <ObjectSession>()) != null)
            {
                Cmd_ObjectSession_Move_mutex.WaitOne();


                // Server holds the truth
                if (session._object.GetMoveResults(
                        netMove.ToMove(),
                        out IEnumerable <MoveResult> results,
                        isRecursiveCall: false,
                        netMove.Type.IsLocking()) > 0)
                {
                    LevelSession.Instance.ApplyMoveResults(results);
                }

                Cmd_ObjectSession_Move_mutex.ReleaseMutex();
            }
        }
コード例 #2
0
    public void OnClick(RaycastHit hit)
    {
        Navigator   navPos  = player.GetComponent <Navigator>();
        NetworkMove netMove = player.GetComponent <NetworkMove>();

        navPos.NavigateTo(hit.point);

        netMove.OnMove(hit.point);
    }
コード例 #3
0
    public void Start()
    {
        transform.position = PlayerManager.RandomPosition();
        currentHealth      = maxHealth;
        healthbarWidth     = healthbar.rectTransform.sizeDelta.x;

        agent    = GetComponent <NavMeshAgent>();
        animator = GetComponent <Animator>();
        netMove  = GetComponent <NetworkMove>();


        if (isLocal)
        {
            controller.onRayHit += (hit) =>
            {
                agent.SetDestination(hit.point);
                netMove.OnMove(hit.point);
            };
            netMove.Initialize();
            idTM.text = PlayerData.schema.name;
        }
    }
コード例 #4
0
 void Awake()
 {
     rb      = GetComponent <Rigidbody2D>();
     netMove = GetComponent <NetworkMove>();
 }