0 / 0 / 0
Регистрация: 28.10.2018
Сообщений: 20
1

Серверный скрипт

28.10.2018, 00:39. Показов 471. Ответов 0

Знатоки C# в Unity, помогите пожалуйста, как сделать этот скрипт серверным?

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
 
public class GrabItem : NetworkBehaviour { 
public float grabPower = 10f; 
public float throwPower = 30f; 
public float rayDistance = 3.0f; 
public RaycastHit hit; 
[SyncVar]
private bool Grab = false; 
[SyncVar]
private bool Throw = false;
[SyncVar]
public Transform offset; 
 
void Update () { 
if (Input.GetMouseButtonDown (1)) { 
Physics.Raycast (transform.position, transform.forward, out hit, rayDistance); 
if (hit.rigidbody) { 
Grab = true; 
} 
    } 
if (Input.GetMouseButtonDown (0)) { 
if (Grab) { 
Grab = false; Throw = true; 
} 
} 
if (Grab) {
    if (hit.rigidbody) {
            hit.rigidbody.velocity = (offset.position - (hit.transform.position + hit.rigidbody.centerOfMass)) * grabPower / hit.rigidbody.GetComponent<Rigidbody>().mass; 
    } 
    } 
    if (Throw) {
        if (hit.rigidbody) {
            hit.rigidbody.velocity = transform.forward * throwPower / hit.rigidbody.GetComponent<Rigidbody>().mass; Throw = false; 
            } 
            } 
            } 
            }
Скрипт отвечает за поднятие и бросание предметов. Я заметил, что когда игроки подключаются, у игрока, который нажал Host Game, все работает - поднятый предмет синхронизируется и отображается у других. Но у клиентов предметы как бы приклеены к своему месту при попытке их поднять - если их взять и кинуть, то предмет сам возвращается на место, а у остальных игроков видно так, будто клиент предмет вообще не поднимает. Причем при обычном толчке предметы падают и у всех это видно, а именно при поднятии не работает как надо.

Все предметы, которые можно поднять, синхронизированы. Непонятно, почему не работает, ведь скрипт не выполняет серверные действия, а просто взаимодействует с предметами, которые уже синхронизированы. Заранее спасибо)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.10.2018, 00:39
Ответы с готовыми решениями:

Как через скрипт добавить скрипт к префабу
Моя цель это добавить написанный скрипт к только что заспавниному объекту префабу

Можно ли после того как серверный скрипт завершил свою работу, вызвать определнную процедуру из него клиентским скриптом?
В общем такой вопрос, можно ли после того как верверный скрипт завершил свою работу, вызвать...

Серверный движок
привет у меня такой вопрос, делаю игру и пишу собственный серверный движок. подскажите в правильном...

Серверный Агент
Помогите плиз! Есть шедульный агент на Сервере А. Он лезет в базу на Сервер Б. Но по ходу...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.10.2018, 00:39

Серверный апгрейд
И так у меня на данный момент 350вт блок питания, материнка Asus P5QL SE S775, проц Dual Core E5200...

Серверный проц
Ребят, подскажите :scratch: Есть старенький системник, задумался поменять начинку. А именно...

Серверный агент
Dim docST As NotesDocument Dim ws As New NotesUIWorkspace Set docST = ws.CurrentDocument.Document...

Серверный документ
Вобщем ситуация такая: по своему не знанию в поле &quot;Access server&quot; серверного документа написал имя...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.